我的身份验证基于此git hub存储库。
https://github.com/chrissainty/AuthenticationWithClientSideBlazor
我只是想知道是否有人对如何实施刷新令牌提出任何建议,因为目前我尝试过的所有操作都失败了。
Blazor何时重新检查身份验证,因为我收集的所有内容都是对负载进行检查,所以当我的令牌仍在登录时过期时,我会收到未经授权的http错误。我不想注销用户以进行重新认证。
这是针对Blazor Web Assembly应用程序。
任何建议将不胜感激!
答案 0 :(得分:1)
总体思路是:
服务器:
private string GenerateRefreshToken()
{
Random random = new Random();
byte[] baseBytes = new byte[128];
random.NextBytes(baseBytes);
return Convert.ToBase64String(baseBytes);
}
您在这里使用刷新令牌再次登录用户。因为您存储了刷新令牌,所以您确切知道哪个用户要再次登录。延长(或不选择您的方法)此特定刷新令牌的到期日期。
客户:
await _localStorage.SetItemAsync("refreshToken", loginResult.RefreshToken);
检查常规令牌是否已过期。您可以通过多种方式做到这一点:
在每个请求之前反序列化令牌并检查到期日期 动态行动:从服务器收到401时 将计时器设置为在令牌到期之前重新登录 或者选择其他东西
使用刷新令牌和新创建的端点重新登录