我已经在 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/