簡體   English   中英

如何使無記名令牌無效

[英]How to make Bearer token invalid

我寫了一個提供程序,該提供程序使用用戶名/密碼制作承載令牌已有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服務的所有方法。 如果客戶端獲得了新令牌,則舊令牌不會失效。 客戶端可以同時使用兩個令牌。

如何使第一個令牌無效?

處理這些方案的標准方法是實現刷新令牌的架構。

最相關的好處:

  • 由於令牌過期,您不需要請求用戶名和密碼(您不會讓令牌過期)。
  • 您可以輕松撤消不允許其刷新的用戶訪問權限。
  • 您可以根據需要向新生成的令牌中添加新的聲明。

看一下本文,您將獲得有關如何實施的完整說明。

http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM