【问题标题】:How to remove mobile device user's token from Owin server如何从 Owin 服务器中删除移动设备用户的令牌
【发布时间】:2018-08-02 13:23:20
【问题描述】:

我有一个关于从 Owin 服务器删除不记名令牌的问题。我的计划是当移动设备用户单击注销按钮时,用户令牌必须从我的 owin 服务器中删除。有什么解决办法吗?如果您的回答是否定的,我可以改变我的想法并接受不同的想法。

这是我的 Startup.cs:

    public void Configuration(IAppBuilder app)
    {
        HttpConfiguration config = new HttpConfiguration();

        config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

        ConfigureOAuth(app);
        WebApiConfig.Register(config);
        app.UseWebApi(config);
    }
    public void ConfigureOAuth(IAppBuilder app)
    {
        OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
        {
            TokenEndpointPath = new PathString("/api/token"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(7), 
            AllowInsecureHttp = true,                          
            Provider = new SimpleAuthorizationServerProvider(),
            RefreshTokenProvider = new SimpleRefreshTokenProvider()  
        };
        app.UseOAuthAuthorizationServer(OAuthServerOptions);
        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());            
    }

【问题讨论】:

    标签: c# asp.net-web-api2 owin bearer-token


    【解决方案1】:

    您遇到的问题是不记名令牌存在于客户端,因此从您的角度来看确实没有太多方法可以做到这一点。在 OAuth 中取消对用户的身份验证的唯一方法是在客户端删除令牌。

    还有其他方法可以解决,例如创建自定义用户会话。查看此博客文章以获取有关如何执行此操作的更详细说明:http://www.nakov.com/blog/2014/12/22/webapi-owin-identity-custom-login-service/

    您可以采取的另一种方法是将令牌的寿命缩短到相当短的时间。这可能会产生接近相同的效果,但我怀疑您正在寻找什么。

    【讨论】:

    • 好的。我尝试了 Authentication.SignOut 功能,但效果不佳。我将尝试在客户端删除令牌或将 ExpireTime 更改为更短。谢谢..
    • 听起来不错,如果不起作用,请告诉我,我会为您深入研究。
    • 我忘记了对不起。这个解决方案对我有用。谢谢。
    猜你喜欢
    • 2016-06-12
    • 1970-01-01
    • 2012-06-20
    • 2013-05-27
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多