Nuxt Auth + Express:获得登录用户?

时间:2020-04-19 23:22:39

标签: express nuxt.js

我在学习如何使用Nuxt-Auth时遇到了绊脚石,目前我有一个与JWT合作的本地策略。我现在希望在调用数据库之前获取当前用户(通过express在服务器上)。

我的第一个想法是解析请求标头中的JWT并获取存储的用户ID。但是,看到我正在使用nuxt-auth中间件,也许有内置方法可用?有关nuxt-auth的文档特别简短。

简而言之,我知道如何使用nuxt-auth在客户端获得当前用户。有服务器端方法吗?将我指向任何文档将对您有所帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

搜索nuxt-auth解决方案不会产生任何结果,因此我选择编写一个简单的快速中间件,该中间件对JWT进行解码,并在req对象中包括有效载荷(包含用户信息)。

编辑:按照@kamal的要求:

const jsonwebtoken = require('jsonwebtoken')
const tokenSecret = 'whateversecrethere'
const accessTokenExpiry = 15 * 1000 // 15 seconds

// @param user {object} - contains user information. eg: { id, name, email }
// returns {object} - access token and refresh token

_createJWTs(user) {
    try {

      let refreshTokenID = Math.floor(Math.random() * (1000000000000000 - 1 + 1)) + 1
      let refresh = { userID: user.id, tokenID: refreshTokenID }
      let accessToken = jsonwebtoken.sign(user, tokenSecret, { expiresIn: accessTokenExpiry })
      let refreshToken = jsonwebtoken.sign(refresh, tokenSecret)

      return { accessToken, refreshToken }
    } catch (err) {
      console.log(err)
    }
  }