我对从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());
}
答案 0 :(得分:0)
您遇到的问题是,承载令牌位于客户端,因此从头到尾实际上没有太多方法可以使用。在OAuth中取消对用户进行身份验证的唯一方法是在客户端上删除令牌。
还有其他一些方法,例如创建自定义用户会话。请查看此博客文章,以获取有关如何执行此操作的更详细说明:http://www.nakov.com/blog/2014/12/22/webapi-owin-identity-custom-login-service/
您可以执行的另一种方法是将令牌的寿命缩短到相当短的时间。这可能具有几乎相同的效果,但我怀疑您在寻找什么。