如何从 Owin 服务器中删除移动设备用户的令牌
How to remove mobile device user's token from Owin server
我在从 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());
}
您遇到的问题是不记名令牌存在于客户端,因此从您这端确实没有太多方法可以做到这一点。在 OAuth 中取消用户身份验证的唯一方法是删除客户端的令牌。
您还可以通过其他方式进行处理,例如创建自定义用户会话。查看此博客 post 以获取有关如何执行此操作的更详细说明:http://www.nakov.com/blog/2014/12/22/webapi-owin-identity-custom-login-service/
您可以采用的另一种方法是将令牌的使用寿命缩短到相当短的时间。这可能会产生接近相同的效果,但我怀疑您正在寻找什么。
我在从 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());
}
您遇到的问题是不记名令牌存在于客户端,因此从您这端确实没有太多方法可以做到这一点。在 OAuth 中取消用户身份验证的唯一方法是删除客户端的令牌。
您还可以通过其他方式进行处理,例如创建自定义用户会话。查看此博客 post 以获取有关如何执行此操作的更详细说明:http://www.nakov.com/blog/2014/12/22/webapi-owin-identity-custom-login-service/
您可以采用的另一种方法是将令牌的使用寿命缩短到相当短的时间。这可能会产生接近相同的效果,但我怀疑您正在寻找什么。