java 令牌访问_JWT访问令牌与刷新令牌(创建)

我正在创建一个Asp.net核心REST服务 . 目前正在通过JWT承载令牌进行身份验证 .

现在,我的代码看起来像:

DateTimeOffset dtNow = DateTime.Now;

Claim[] claims = new Claim[]

{

new Claim(JwtRegisteredClaimNames.Sub, strUsername),

new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),

new Claim(JwtRegisteredClaimNames.Iat, dtNow.ToUnixTimeSeconds().ToString(), ClaimValueTypes.Integer64)

};

JwtSecurityToken jwtAccess = new JwtSecurityToken(_options.Issuer, _options.Audience, claims, dtNow.DateTime, dtNow.DateTime.Add(_options.AccessTokenExpiration),

_options.SigningCredentials);

var response = new

{

access_token = new JwtSecurityTokenHandler().WriteToken(jwtAccess),

token_type = "Bearer",

expires_in = (int)_options.AccessTokenExpiration.TotalSeconds,

refresh_token = ""

};

问题:

现在,我的访问令牌1小时好,刷新令牌60天 . 这些合理的 Value 观是?

没有看到很多关于如何创建refresh_token的文档......这是创建的,就像访问令牌一样,但只是有不同的超时?

我的理解是我应该将刷新令牌存储在数据库中,如果用户发送刷新令牌请求,我需要验证令牌的签名并确保它在我的数据库中?

当用户请求刷新令牌时,我应该返回相同的refresh_token,无论它是否过期,让用户担心获取一个新的?

用户一次只能有一个刷新令牌,对吗?如果他们再做一次password_grant,我只是覆盖刷新令牌,好像他们正在获得一个全新的?

最后一个问题是,我看到人们正在进行JWT认证,这就是为什么我必须每隔5分钟获得一个新令牌,所以这一切看起来都像洗,除非我遗漏了什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值