我成功地使用了 asp.net web API 的承载 token 身份验证,如默认的单页应用程序模板中所示。但现在我想使用来自不同站点(不同 url)的相同 Web API。
当我从不同站点向 Web API AuthorizeEndpoint(默认为/api/Account/ExternalLogin)发出请求时,出现错误:invalid_request。我猜问题出在 redirect_uri 值上,因为将其更改为在与 web api 相同的域上运行的站点的值可以解决问题。
应用程序 OAuthAuthorizationServerProvider 中的 ValidateClientRedirectUri 方法不会被触发。因此,根据我在 Katana 源中的搜索,错误来源在 OAuthAuthorizationServerHandler.InvokeAuthorizeEndpointAsync 中。
有没有其他人有同样的问题,或者我做错了什么?
最佳答案
Katana OAuth 中间件不是为跨应用设计的——它主要是为了将 OAuth 授权服务器“嵌入”到业务资源中。
如果您想要一个合适的(免费)授权服务器 - 请看这里:
https://github.com/thinktecture/Thinktecture.AuthorizationServer/wiki
关于asp.net - OWIN AuthorizeEndpoint 的 redirect_uri 与 web api 的 uri 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21666598/