【发布时间】:2014-01-23 16:37:21
【问题描述】:
我们有一个 API,Oauth2 Provider。
从 AngularJS 客户端应用程序,我如何实现到此 api 的身份验证流程以获取未来请求的访问令牌?
我正在寻找的是一个隐式授权流程。
我会提供一个
{
client-id: "abcdefghijklmnopqrstuvqxyz0123456789",
redirect_url: "http:localhost:8080/provider_cb",
response_type: "token"
}
我在后端和门卫/设计中有一个 Rails REST API 用于 Oauth2 配置。
偶遇angular-oauth,好像在一定程度上解决了问题。 但是,
- 我不希望提供令牌验证功能(这是强制性的)
- 我不希望为登录打开一个新窗口弹出窗口(希望在同一窗口中进行重定向)
现在,
第一季度。我不明白的是整个过程是如何开始的,我无法发出任何 $http 请求,这会返回一个 SignIn HTML 页面。我应该使用 $location 服务将其重定向到登录页面吗?或者我应该有一个指向 /oauth/authorize 的整个 GET 请求的链接?...
Q2,我将如何在登录后捕获重定向以提取 access_token?
第三季度。知道任何负责 Oauth2 身份验证或标准 Angular 方式的服务吗?
【问题讨论】:
-
总体思路是创建一个新窗口并在那里进行重定向。然后观察 url,从中检索参数并关闭窗口
-
因为这基本上是一个带有 RESTful api 和带有角度的前端的应用程序。是否可以在窗口中完成整个过程。我尝试使用 localhost:port/oauth/authorize?client_id=..." %> 来执行此操作,它最终将我重定向到 sign_in 并在 sign_in 之后将我重定向到我定义的一些回调。现在,我可以从 angular $routeProvider 中捕获这个 url 吗?如果我执行 html5mode(true),我会在 Rails 路由重写中丢失令牌,并且我不能有片段的回调函数。
标签: ruby-on-rails angularjs oauth oauth-2.0 doorkeeper