OAUth2 ASP.NET invalid_grant
OAUth2 ASP.NET invalid_grant
我正在尝试为我的 Web 应用程序实施 OAUTH2,但即使登录应用程序有效,刷新令牌也会导致 HTTP 400 "invalid_grant"。
具体来说,该项目是一个带有 OWIN OAuth 提供程序的 ASP.NET WebAPI。这几天一直让我很不高兴,所以任何帮助将不胜感激:)
你设置正确了吗OAuthAuthorizationServerOptions.RefreshTokenProvider
?
如果您需要示例,Katana 的沙箱项目包含一个最小的实现,展示了如何使用数据保护块(IIS 上的机器密钥)轻松配置它以保护和序列化刷新令牌:https://github.com/jchannon/katanaproject/blob/master/tests/Katana.Sandbox.WebServer/Startup.cs#L169-L173
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions {
RefreshTokenProvider = new AuthenticationTokenProvider {
OnCreate = CreateRefreshToken,
OnReceive = ReceiveRefreshToken,
}
});
private void CreateRefreshToken(AuthenticationTokenCreateContext context) {
context.SetToken(context.SerializeTicket());
}
private void ReceiveRefreshToken(AuthenticationTokenReceiveContext context) {
context.DeserializeTicket(context.Token);
}
如果仍然不起作用,请尝试启用跟踪以确定 invalid_grant
错误的根本原因:http://katanaproject.codeplex.com/wikipage?title=Debugging&referringTitle=Documentation
我们在 Azure 上部署 AuthorizationServer
并尝试通过 localhost 访问它时遇到了同样的问题。
后来我们部署了所有 3:
- 授权服务器
- 授权代码授予
- 资源服务器
在 Constants\Paths.cs
中对已部署的 URL 进行了必要的更改。
即使在这之后它也没有用。但是,一旦我们将所有路径更改为 HTTPS,一切就开始顺利进行了。
如果你仍然卡住,请尝试一下。
我正在尝试为我的 Web 应用程序实施 OAUTH2,但即使登录应用程序有效,刷新令牌也会导致 HTTP 400 "invalid_grant"。 具体来说,该项目是一个带有 OWIN OAuth 提供程序的 ASP.NET WebAPI。这几天一直让我很不高兴,所以任何帮助将不胜感激:)
你设置正确了吗OAuthAuthorizationServerOptions.RefreshTokenProvider
?
如果您需要示例,Katana 的沙箱项目包含一个最小的实现,展示了如何使用数据保护块(IIS 上的机器密钥)轻松配置它以保护和序列化刷新令牌:https://github.com/jchannon/katanaproject/blob/master/tests/Katana.Sandbox.WebServer/Startup.cs#L169-L173
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions {
RefreshTokenProvider = new AuthenticationTokenProvider {
OnCreate = CreateRefreshToken,
OnReceive = ReceiveRefreshToken,
}
});
private void CreateRefreshToken(AuthenticationTokenCreateContext context) {
context.SetToken(context.SerializeTicket());
}
private void ReceiveRefreshToken(AuthenticationTokenReceiveContext context) {
context.DeserializeTicket(context.Token);
}
如果仍然不起作用,请尝试启用跟踪以确定 invalid_grant
错误的根本原因:http://katanaproject.codeplex.com/wikipage?title=Debugging&referringTitle=Documentation
我们在 Azure 上部署 AuthorizationServer
并尝试通过 localhost 访问它时遇到了同样的问题。
后来我们部署了所有 3:
- 授权服务器
- 授权代码授予
- 资源服务器
在 Constants\Paths.cs
中对已部署的 URL 进行了必要的更改。
即使在这之后它也没有用。但是,一旦我们将所有路径更改为 HTTPS,一切就开始顺利进行了。
如果你仍然卡住,请尝试一下。