【问题标题】:open authentication cross domain redirection issue打开身份验证跨域重定向问题
【发布时间】:2016-03-06 08:28:29
【问题描述】:

我第一次尝试在 mvc-web-api4 中进行开放式身份验证。我在 services.domain.com 中托管了我的服务,而前端(UI)在 test.domain.com 中。

在前端,我将调用该服务以从 facebook 登录。成功登录后,我将在 services.domain.com 中获得访问令牌。但我的代码在 test.domain.com 中。

从 facebook 重定向后。我在 service.bubblesbuy.com 中获取访问令牌,但我需要 test.domain.com 中的访问令牌。

这是我遵循的步骤

$.ajax({
    url: "services.domain.com/api/Account/ExternalLogins?returnUrl=%2F&generateState=true",
    success: function (data) { 
    //after successful 
    }

成功后,我会得到提供者,这是输出

[     
{
"Name": "Facebook",
"Url": "/api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=services.domain.com&state=bzDUygFiUw-jOYHCYaDPT8iawAjq1ejd0hmkVPZTwjk1",
"State": "bzDUygFiUw-jOYHCYaDPT8iawAjq1ejd0hmkVPZTwjk1"
}
]

我会将 Url 传递给我的服务

services.domain.com//api/Account/ExternalLogin?provider=Facebook&response_type=token&client_id=self&redirect_uri=services.domain.com&state=bzDUygFiUw-jOYHCYaDPT8iawAjq1ejd0hmkVPZTwjk1",
"State": "bzDUygFiUw-jOYHCYaDPT8iawAjq1ejd0hmkVPZTwjk1

我正在获取访问令牌

services.domain.com/#access_token= Hu2B5WmmZLy8TfJ3RqRsVnQDfDcHSiVCMliWrS554PpU-i_LQzdMggJgXClsf-ZtYXRDxxct7m3frZxYR0MKLxNWHwH1gXxi7Y-HUbWjyB9QvBJMwifFCVMnt7BOOlKjJPEAhdOY7ZgRB-vURBH-hHT6wFSXJvvpYpZ0fziX0DgKrLIqUj8&token_type=bearer&expires_in=1209600&state=24HUa-Upzo-_Xh2j0CkAx5TVPdoirvNrGktpg5H5Ifg1

但我需要在 test.domain.com 中访问该令牌(我的所有 html 页面都在前端)

请帮助我如何在 test.domain.com 中获取该访问令牌(在前端)

【问题讨论】:

    标签: javascript ajax asp.net-mvc-4 asp.net-web-api oauth-2.0


    【解决方案1】:

    您需要一个向您的客户端(前端)颁发访问令牌的授权服务器。 Microsoft 为 ASP.NET MVC 提供了一个 OWIN 中间件。看看这个样本:OWIN OAuth 2.0 Authorization Server

    由于微软以后不再支持这个中间件,你也可以使用开源的IdentityServer3。该项目是 .NET Foundation 的一部分,提供了良好的支持和大量示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多