如何在express.js/passport http bearer中撤销express jwt令牌

如何在express.js/passport http bearer中撤销express jwt令牌,express,jwt,express-jwt,Express,Jwt,Express Jwt,这是我的路由器: expressJwt = require('express-jwt') router.post '/signin' , controller.signUp router.get '/signout/:id' , expressJwt(secret:secretToken, isRevoked: isRevokedCallback), controller.signOut isRevokedCallback = (req, payload, done) -&

这是我的路由器:

expressJwt    = require('express-jwt')
router.post '/signin'      , controller.signUp
router.get  '/signout/:id' , expressJwt(secret:secretToken,  isRevoked: isRevokedCallback), controller.signOut
isRevokedCallback = (req, payload, done) ->
  for key, value of payload
    console.log(key + ' ' + value)
  # The below part does not work. Also I don't know what data should refer to
  issuer = payload.iss
  tokenId = payload.jti
  data.getRevokedToken issuer, tokenId, (err, token) ->
    if err
      return done(err)
    done null, ! !token
  return
这是我的注销端点:

exports.signOut = (req, res) ->
  console.log res.user
我需要在端点中放入什么来撤销令牌

我尝试将此功能放入我的路由器:

expressJwt    = require('express-jwt')
router.post '/signin'      , controller.signUp
router.get  '/signout/:id' , expressJwt(secret:secretToken,  isRevoked: isRevokedCallback), controller.signOut
isRevokedCallback = (req, payload, done) ->
  for key, value of payload
    console.log(key + ' ' + value)
  # The below part does not work. Also I don't know what data should refer to
  issuer = payload.iss
  tokenId = payload.jti
  data.getRevokedToken issuer, tokenId, (err, token) ->
    if err
      return done(err)
    done null, ! !token
  return
列表确实已注销:

iat 1436437563
exp 1436653563
我的端点中还有一个用户对象已注销:

user [object Object]
现在,如何将这些部分放在一起并撤销JWT令牌,从而使拥有该令牌的用户不能再使用该令牌登录(或者立即终止该令牌)

下面是我的用户对象的一些控制台日志示例:

{ user: 
   { __v: 0,
     _id: '559e6aad50cdf686db31ea55',
     local: 
      { password: '$2a$08$YBvzOWADlw9tZCDh3aG/j.gV.Tbaesk3pLbbiHL/lkGaC08bSbGmy',
        email: 'dieter@mustermann.de' } },
  iat: 1436445357,
  exp: 1436661357 }
GET /user/signout/559e6aad50cdf686db31ea55 401 2.530 ms - 12
ERROR:Error: expected 200 "OK", got 401 "Unauthorized"
    1) should sign out via passport.js

我通过返回一个
标记:false
键,值对来实现这一点。另一个想法是发回一个带有
expirationinsteonds:1
的令牌。旧的令牌仍然有效,这根本不能称为非常安全。因此,将默认令牌过期时间设置得非常低,或者移动到另一个选项,如黑名单

嗨,我可以知道你是如何在expressjs中使用coffeescript的吗?