Angular OAuth 2实现未按预期工作

Angular OAuth 2实现未按预期工作,angular,oauth,playframework-2.5,Angular,Oauth,Playframework 2.5,我是实现OAuth2工作流的新手。我正在测试GoogleOAuth2,我的设置如下 播放服务器端的框架 客户端为角度2 两个应用程序位于同一个机箱上,但在不同的端口下运行。但是,我已经为客户端ajax请求设置了代理 工作的主要部分是在服务器端完成的,我用谷歌发布的代码交换令牌。当我手动测试它并直接在浏览器选项卡中输入授权端点时,一切正常。我被重定向到google,登录,然后重定向到授权端点,然后发出一个令牌。当第一次点击授权端点时,它会发送303响应,浏览器会自动重定向到google。成功登录后

我是实现OAuth2工作流的新手。我正在测试GoogleOAuth2,我的设置如下

  • 播放服务器端的框架
  • 客户端为角度2
  • 两个应用程序位于同一个机箱上,但在不同的端口下运行。但是,我已经为客户端ajax请求设置了代理

    工作的主要部分是在服务器端完成的,我用谷歌发布的代码交换令牌。当我手动测试它并直接在浏览器选项卡中输入授权端点时,一切正常。我被重定向到google,登录,然后重定向到授权端点,然后发出一个令牌。当第一次点击授权端点时,它会发送303响应,浏览器会自动重定向到google。成功登录后,google会使用url中的访问代码重定向到我的自动化端点。服务器读取访问代码并将其发送到google以交换令牌。假设我的授权端点是

    然而,当我尝试从angular 2应用程序初始化流,并在成功登录google后发送google发布的代码时。在客户端,我向google发起一个请求,并将重定向uri设置为的授权端点。成功登录后,我读取google返回的授权码并将其发送到服务器。在这个例子中,我得到一个错误,说有一个重定向uri不匹配

    我不明白为什么这个设置不起作用。谷歌是否将访问代码限制在特定域内,这意味着如果我的angular应用程序运行在端口3000上,那么访问代码是否仅对来自该端口的请求有效


    任何帮助都将不胜感激,因为我花了数小时试图弄清楚为什么这不起作用。

    您是否在控制台中注册了重定向url?注册后你等了一段时间了吗?完全一样吗

    请看这里:

    您的应用程序必须向系统注册自定义URI方案,才能接收授权响应。应用程序注册自定义URI方案的方式因平台而异。我们的库和示例演示了定制URI方案重定向的一些特定于平台的实现


    如果您正在处理来自客户端Web应用程序的身份验证,您也可以考虑使用隐式授权流而不是更简单且设计用于处理客户端身份验证的授权代码:

    您在控制台中注册了RealTrdURL吗?注册后你等了一段时间了吗?完全一样吗

    请看这里:

    您的应用程序必须向系统注册自定义URI方案,才能接收授权响应。应用程序注册自定义URI方案的方式因平台而异。我们的库和示例演示了定制URI方案重定向的一些特定于平台的实现

    如果您正在处理来自客户端Web应用程序的身份验证,您也可以考虑使用隐式授权流而不是更简单且设计用于处理客户端身份验证的授权代码: