【问题标题】:How to make Bearer token invalid如何使不记名令牌无效
【发布时间】:2014-09-04 04:52:50
【问题描述】:

我写了一个提供者,它通过用户名/密码制作不记名令牌 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 服务的所有方法。 如果客户端获得了新令牌,则旧令牌不会失效。并且客户端可以同时使用这两个令牌。

如何使第一个令牌无效?

【问题讨论】:

    标签: c# security oauth-2.0 token asp.net-web-api


    【解决方案1】:

    处理这些场景的标准方法是实现 Refresh Token 架构。

    最相关的好处:

    • 由于令牌过期,您不需要请求用户和密码(您不会让令牌过期)。
    • 您可以轻松撤消不允许刷新的用户访问权限。
    • 您可以根据需要向新生成的令牌添加新声明。

    看看这篇文章,你会得到一个完整的解释如何实现它。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-05
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2020-05-24
      • 2019-08-08
      相关资源
      最近更新 更多