我写了一个提供商,通过用户名/密码制作bearer-tokens 10年:
public partial class Startup
{
private readonly TimeSpan _tokenLifetime = TimeSpan.FromDays(3600);
public void ConfigureAuth(IAppBuilder app)
{
var config = new HttpConfiguration();
WebApiConfig.Register(config);
app.UseCors(CorsOptions.AllowAll);
app.CreatePerOwinContext(UsersDB.Create);
app.CreatePerOwinContext<UserManager>(UserManager.Create);
app.CreatePerOwinContext<RoleManager>(RoleManager.Create);
app.UseOAuthBearerTokens(new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/getToken"),
Provider = new ApplicationOAuthProvider(new UserManager(new ApiUserStore(new UsersDB()))),
AccessTokenExpireTimeSpan = _tokenLifetime,
AllowInsecureHttp = true,
});
app.UseWebApi(config);
}
}
客户端必须获取令牌,并且必须将其用于所有Web API服务方法。 如果客户端获得新令牌,则旧令牌不会变为无效。客户端可以同时使用这两个令牌。
如何使第一个令牌无效?
答案 0 :(得分:3)
处理这些方案的标准方法是实施刷新令牌 arquitecture。
最相关的好处:
看看这篇文章,您将获得如何实现它的完整解释。