代码之家  ›  专栏  ›  技术社区  ›  KARTHIKEYAN.A

如何在feathersjs中解码jwt并从这个用户ID中获取?

  •  4
  • KARTHIKEYAN.A  · 技术社区  · 8 年前

    我正在将Feathers框架用于我的nodejs应用程序,并以以下方式创建了jwt

      app.service('authentication').hooks({
        before: {
          create: [
            authentication.hooks.authenticate(config.strategies),
            function (hook) {
             hook.params.payload = {
                userId: hook.params.user.userId,
                accountId: hook.params.user.accountId
              };
              return Promise.resolve(hook);
            }
          ],
          remove: [
            authentication.hooks.authenticate('jwt')
          ]
        }
      });
    

    现在我怀疑如何使用jwt解码的数据从令牌中获取用户ID。

    1 回复  |  直到 8 年前
        1
  •  4
  •   KARTHIKEYAN.A    8 年前

    使用jwt解码库将在feathersjs中提供jwt解码功能

    const decode = require('jwt-decode');
    
    hook.params.headers.authorization =  'eyJhbGciOiJIUzI1NiIsInR5cCI6ImFjY2VzcyIsInR5cGUiOiJhY2Nlc3MifQ.eyJ1c2VySWQiOjEsImFjY291bnRJZCI6MSwiaWF0IjoxNTA2MzMwNzIyLCJleHAiOjE1MDY0MTcxMjIsImF1ZCI6Imh0dHBzOi8veW91cmRvbWFpbi5jb20iLCJpc3MiOiJmZWF0aGVycyIsInN1YiI6ImFub255bW91cyJ9.gZrDJhmzdpt9-7OCeRcKiayQiKbtv-3UaTkN1BhOCAI'
    
    var userId =  decode(hook.params.headers.authorization).userId; 
    console.log(userId)
    1
    
    推荐文章