servicestack 如何刷新令牌servicestack类型脚本
在servicestack上,它表示对于普通客户端,应该是这样的,但是对于typescript,应该有所不同。有人知道怎么做吗servicestack 如何刷新令牌servicestack类型脚本,servicestack,jwt,servicestack,Jwt,在servicestack上,它表示对于普通客户端,应该是这样的,但是对于typescript,应该有所不同。有人知道怎么做吗 var client = new JsonServiceClient(baseUrl); client.OnAuthenticationRequired = () => { client.BearerToken = authClient.Send(new Authenticate()).BearerToken; }; onAuthenticationRe
var client = new JsonServiceClient(baseUrl);
client.OnAuthenticationRequired = () => {
client.BearerToken = authClient.Send(new Authenticate()).BearerToken;
};
onAuthenticationRequired
和refreshToken
的支持已添加到v0.0.32中的类型脚本中,可用于透明地处理401个未经授权的响应,并在自动重试前从回调中重新验证JsonServiceClient
原始失败的请求:
透明地处理401个未经授权的响应
如果由于客户端未经身份验证或所使用的配置的承载令牌或API密钥已过期(或无效),服务器返回401 Unauthorized响应,则可以在自动重试原始请求之前使用onAuthenticationRequired
回调重新配置客户端,例如:
client.onAuthenticationRequired = async () => {
const authClient = new JsonServiceClient(authBaseUrl);
authClient.userName = userName;
authClient.password = password;
const response = await authClient.get(new Authenticate());
client.bearerToken = response.bearerToken;
};
//Automatically retries requests returning 401 Responses with new bearerToken
var response = await client.get(new Secured());
自动刷新JWT令牌
使用,您可以使用refreshttoken
属性指示服务客户端在后台自动获取新的JWT令牌,然后自动重试由于无效或过期的JWT而失败的请求,例如:
//Authenticate to get a new Refresh Token
const authClient = new JsonServiceClient(authBaseUrl);
authClient.userName = userName;
authClient.password = password;
const authResponse = await authClient.get(new Authenticate());
//Configure client with RefreshToken
client.refreshToken = authResponse.RefreshToken;
//Clients will automatically retrieve new JWT Tokens as needed
var response = await client.get(new Secured());
将刷新令牌发送到备用服务器
当需要将刷新令牌发送到发布新JWT令牌的其他ServiceStack服务器时,请使用refreshTokenUri
属性,例如:
client.refreshToken = refreshToken;
client.refreshTokenUri = authBaseUrl + "/access-token";
谢谢你的回复。真的需要尽快刷新令牌。但似乎v0.0.31未处于工作状态。缺少某些导入、标头、响应、请求。你能看一下吗it@Roman它们都是W3C fetch定义,您需要最新版本的带有es2016 lib依赖项的TypeScript,或者需要安装@types/whatwg fetch