servicestack 承载令牌和刷新令牌之间的区别是什么?,servicestack,jwt,servicestack,Jwt" /> servicestack 承载令牌和刷新令牌之间的区别是什么?,servicestack,jwt,servicestack,Jwt" />

servicestack 承载令牌和刷新令牌之间的区别是什么?

servicestack 承载令牌和刷新令牌之间的区别是什么?,servicestack,jwt,servicestack,Jwt,在ServiceStack中,我使用JwtAuthProvider,在这里我获得了承载令牌和刷新令牌,那么如何验证令牌并授权web api服务呢? 代码: 请参阅网站上的这篇文章 总之,BearerToken是实际的JWT以及用于通过JWT进行身份验证的内容。它包含用户会话的无状态快照,通常是一个短期令牌,到期后需要联系身份验证服务器获取新的JWT令牌 refreshttoken是一个可用于透明地请求新的JWT令牌(即不强制用户手动重新验证)并将使用用户会话的最新快照填充的 JWT Bealer

在ServiceStack中,我使用JwtAuthProvider,在这里我获得了承载令牌和刷新令牌,那么如何验证令牌并授权web api服务呢? 代码:


请参阅网站上的这篇文章

总之,
BearerToken
是实际的JWT以及用于通过JWT进行身份验证的内容。它包含用户会话的无状态快照,通常是一个短期令牌,到期后需要联系身份验证服务器获取新的JWT令牌

refreshttoken
是一个可用于透明地请求新的JWT令牌(即不强制用户手动重新验证)并将使用用户会话的最新快照填充的

JWT BealerToken的生存期越短,存储在JWT中的无状态会话信息就越不陈旧,但需要使用RefreshToken获取更新的BealerToken的频率就越高。只有在请求新的BealerToken后,会话信息才会显示,例如角色和权限,或者它们是否被锁定

每个令牌的生存期可通过
ExpireTokensIn
ExpireRefreshTokensIn
JwtAuthProvider属性配置

ServiceStack客户端对JWT和刷新令牌的内置支持 ServiceStack的服务客户端会自动处理。在初始化服务客户端时,通常会同时填充BearToken和RefreshToken,例如:

var authResponse = authClient.Send(new Authenticate());

var client = new JsonServiceClient(baseUrl) {
    BearerToken = authResponse.BearerToken,
    RefreshToken = authResponse.RefreshToken,
};
请求时需要使用
BearerToken
,但由于服务客户端使用配置的RefreshToken自动获取新的JWT令牌,您只需要填充
RefreshToken

var client = new JsonServiceClient(baseUrl) {
    RefreshToken = authResponse.RefreshToken,
};
因为ServiceStack将在第一次使用时自动获取新的JWT令牌,但您可以通过填充这两个令牌来节省往返时间

var authResponse = authClient.Send(new Authenticate());

var client = new JsonServiceClient(baseUrl) {
    BearerToken = authResponse.BearerToken,
    RefreshToken = authResponse.RefreshToken,
};
var client = new JsonServiceClient(baseUrl) {
    RefreshToken = authResponse.RefreshToken,
};