【发布时间】:2014-09-11 11:56:32
【问题描述】:
我有两个站点,一个是用户登录并管理其帐户的站点,另一个是没有 UI 的站点,只不过是一个用于存储和检索内容的 API。这两个站点都使用相同的 Owin ASP.Net Identity 2.0 设置。 UI 站点出于显而易见的原因使用 cookie,而 API 站点使用 Bearer 令牌。我需要能够使用当前用户身份验证从 UI 站点调用 API 方法/url。简而言之,我需要在 UI 站点中生成一个有效的 Bearer 令牌,以便在进行 Rest API 调用时添加到 HTTP 标头中。
我正在寻找某种方法来使用“受信任的”客户端身份验证并调用 API 的 /Token url 来生成 Bearer 令牌,或者由于两个站点共享相同的代码并且用户表调用 Owin 方法来生成UI 站点代码中的不记名令牌,我可以将其传递给 API 标头,API 站点将其视为有效令牌。
如果您需要更多信息,请告诉我。
更新:请参阅下面的更新答案以及使用 oAuth 隐式流执行此操作的正确方法。
【问题讨论】:
-
是否有什么阻止您简单地使用 UI 网站上的 Cookie?我有一个类似的设置(MVC:Cookie Auth/Api:Basic Auth),只需检查我的 Api 身份验证中的 Cookie
-
@PeekaySwitch 这在我们使用 MemberShipProvider 时有效,但它似乎不适用于 OAuth 令牌。
-
为什么投反对票??
-
如果您要投反对票,请解释一下您自己。不要拒绝投票并运行......
标签: owin asp.net-web-api2 asp.net-identity-2 bearer-token