servicestack 如何刷新令牌servicestack类型脚本,servicestack,jwt,servicestack,Jwt" /> servicestack 如何刷新令牌servicestack类型脚本,servicestack,jwt,servicestack,Jwt" />

servicestack 如何刷新令牌servicestack类型脚本

servicestack 如何刷新令牌servicestack类型脚本,servicestack,jwt,servicestack,Jwt,在servicestack上,它表示对于普通客户端,应该是这样的,但是对于typescript,应该有所不同。有人知道怎么做吗 var client = new JsonServiceClient(baseUrl); client.OnAuthenticationRequired = () => { client.BearerToken = authClient.Send(new Authenticate()).BearerToken; }; onAuthenticationRe

在servicestack上,它表示对于普通客户端,应该是这样的,但是对于typescript,应该有所不同。有人知道怎么做吗

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