• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yantianqi
V2EX  ›  程序员

前端, token 和 refreshToken 疑问

  •  
  •   yantianqi · Jul 13, 2020 · 3663 views
    This topic created in 2306 days ago, the information mentioned may be changed or developed.

    token 和 refreshToken 存于 cookie 中

    token 两小时有效,refreshToken 7 天有效

    token 失效后 refreshToken 刷新 token

    如果用户操作中 refreshToken 失效了,如何判断呢?区别于用户第一次进入的未登录?

    9 replies  •  2020-07-13 13:15:45 +08:00
    rioshikelong121
    rioshikelong121
    Jul 13, 2020
    1
    后端判断吧。 后端可以区分 refresh token 的时间过期 和 cookie 中不包含 token 和 refresh token 的情况(未登录)。
    FinnBai
    FinnBai
    Jul 13, 2020
    2
    刷新 token 时发现 refreshToken 也失效,则清除前端登录状态,让用户重新登录
    sunxiansong
    sunxiansong
    Jul 13, 2020
    3
    判断逻辑和后端协商啊,给个确定的状态码给个错误码,反正能确定是 refreshToken 失效就行
    Kyle18Tang
    Kyle18Tang
    Jul 13, 2020
    4
    两个都失效后端就应该返回 401,你前端判断 HTTP 状态就可以了。
    nvkou
    nvkou
    Jul 13, 2020 via Android
    5
    你把各种 token 用点.分割开,把第二部分用 base64 解码。里面就有过期时间
    liuzhaowei55
    liuzhaowei55
    Jul 13, 2020 via iPhone
    6
    refresh_token 不应该每次传吧,应该第一次授权获得了 refresh_token 然后存储本地,当服务器返回 access_token 过期的时候,用 refresh_token 去刷新 access_token,我是这样理解的,一般情况下服务器也会顺带刷新 refresh_token 的过期时间。
    kop1989
    kop1989
    Jul 13, 2020
    7
    1 、token,refreshToken 是否失效应该交由后台判断,不应你来判断。
    2 、在不刷新 token 的场景下,应该是无法发现 refreshToken 失效的,如果发现了,那这个 refreshToken 的业务意义就很让人不解。
    3 、在 1 和 2 的前提下,也就是刷新 token 才发现 refreshtoken 失效,那么应该不存在你的问题。(因为未登录是不会通过 refreshToken 刷新 token 的)。
    LeeSeoung
    LeeSeoung
    Jul 13, 2020
    8
    都让后端判断,前端只管解析后端返回的是否有效凭据
    hantsy
    hantsy
    Jul 13, 2020
    9
    用 OAuth2 标准的话,前端大把 OAuth2 封装( Angular,react ),更简单的就是用 Auth0,Okta 等。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5889 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 03:09 · PVG 11:09 · LAX 19:09 · JFK 22:09
    ♥ Do have faith in what you're doing.