nest-admin icon indicating copy to clipboard operation
nest-admin copied to clipboard

refreshToken问题

Open Gosnails opened this issue 10 months ago • 4 comments

  async refreshToken(accessToken: AccessTokenEntity) {
    const { user, refreshToken } = accessToken

    if (refreshToken) {
      const now = dayjs()
      // 判断refreshToken是否过期
      if (now.isAfter(refreshToken.expired_at))
        return null

      const roleIds = await this.roleService.getRoleIdsByUser(user.id)
      const roleValues = await this.roleService.getRoleValues(roleIds)

      // 如果没过期则生成新的access_token和refresh_token
      const token = await this.generateAccessToken(user.id, roleValues)

      await accessToken.remove()
      return token
    }
    return null
  }

refreshToken没有相关接口,refreshToken校验也只用了过期时间匹配,

Gosnails avatar Apr 09 '24 09:04 Gosnails

我仔细看了下作者的refreshToken这块逻辑,应该是用accessToken来获取关联refreshToken进行校验,来刷新accessToken,我目前是这么做的。主要之前接触的都是拿refreshToken来换,由于前端接触后端较少,不清楚这块的常规方案。

Gosnails avatar Apr 26 '24 06:04 Gosnails

一般refreshToken签名验证通过后再验证关联的accessToken是否正确就没问题了.

jingshuixiao-sbi-dalian avatar Jul 10 '24 05:07 jingshuixiao-sbi-dalian

我也看到这个模块了但是我好奇为什么需要把accessToken和refreshToken存数据库呢?有没有好心的大佬来解答一下小弟的疑惑

907014165 avatar Jul 11 '24 03:07 907014165

我也看到这个模块了但是我好奇为什么需要把accessToken和refreshToken存数据库呢?有没有好心的大佬来解答一下小弟的疑惑

跟踪 状态

jingshuixiao-sbi-dalian avatar Jul 11 '24 05:07 jingshuixiao-sbi-dalian