javascript - 使用 Angular.js 处理基于 OAuth token 的身份验证?

标签 javascript angularjs node.js authentication oauth

我已经在 Node.js 中设置了后端代码,以便使用护照成功地向 GitHub 进行身份验证。我可以使用 jsonwebtoken 生成 token 。但是,由于 OAuth 的流程,我在管理前端时遇到了麻烦。

如果这是基于输入电子邮件和密码的表单,则 View 可能有点像这样:

<form ng-submit="login()">
  <input ng-model="user.email" type="email" name="email" id="email" ng-required />
  <input ng-model="user.password" type="password" name="password" id="password" ng-required />
  <button type="submit">Log in</button>
</form>

在此流程中, Controller 可以使用 login()向路由发出请求并接收回包含 currentUser 的对象成功时添加 token ,并在回调时重定向。

OAuth 的流程在这里给我带来了一些麻烦。在 OAuth 中,您将用户重定向到站点,然后它返回到在服务器上设置 currentUser 的 Node.js 端的回调 URL。我不知道如何将 Angular 前端连接到这个过程。

在 Angular 中,你应该如何处理这个问题,以便单击“使用 github 登录”按钮将更新 $window.sessionStorage.token变量和$rootScope.currentUser对象?

最佳答案

您的 oauth 链接应该有一个 _blank 目标,或者使用 window.open 在新窗口中登录...当 oauth 完成时,您可以调用 window.opener.foo(...) 来自您的窗口代码,可以通知前面的 SPA 应用程序更新其状态...

关于javascript - 使用 Angular.js 处理基于 OAuth token 的身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28204170/

相关文章:

javascript - 如何使用 node.js Q 在链执行期间插入 promise ?

javascript - 查看单击按钮时执行的脚本

angularjs - 如何从路径中获取变量?

javascript - 更新 Angular 1 中 Promise 中的变量

Node.js - 检查用户是否存在

node.js - axios 授权 header /CORS 错误

javascript - 使用 Rails 3.1 在谷歌地图信息窗口中显示多个标记的链接

javascript - 如何将 onclick 事件添加到 Javascript 确认框的“确定”按钮?

angularjs - NG-重复文件夹中的图像

node.js - 仅使用 PFX 的 Node JS https 服务器