【发布时间】:2015-10-27 08:04:16
【问题描述】:
使用 ASP.NET 身份、WebAPI 和 UseOAuthBearerTokens
public void Configuration(IAppBuilder app)
{
app.UseOAuthBearerTokens(new OAuthAuthorizationServerOptions
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new CustomProvider(...))
});
}
API 在有效的登录请求时返回一个令牌字符串。令牌可以正常工作,并允许最终用户访问 API 的授权部分,但是,如果更改了令牌字符串的最后一个字符,它有时仍然可以工作。看来这只是字符串的最后一个字符的情况,只有一些值/更改仍然允许令牌有效。为什么会这样?这是代码的问题还是只是身份的一部分?
例如: 从服务器返回的令牌是
mdC0XvL4VBucyMPD-OvQ0KA5vW1Q8OHdF4OtqET5hEFI20uaOXbX4JlzTwkLRmWUr-4cIzQf1adXx5DbnXltuwcSjiX1NEY5DqhS3c9GyU1c2VqLAOUYj4-BraaheNsCPvReZqvT__NsObpziKX98SY4gSUGDBVigVONdvlpRunzPZlIeJh99jBqzavuo4qSEElAlBNvNFts95aN7otO5-bNiDNl1t_CP9PQWcTIipMNe_No2J8wGbmIvEWCBAhN3Ts6lvmFpHSA02up1YykZoDZa0TZY7QOt187aP9-7kN
您可以将 N(在令牌字符串的末尾)更改为 O 或 P,它仍然允许用户访问 API
【问题讨论】:
标签: asp.net asp.net-web-api oauth asp.net-identity access-token