angularjs - 设置第三方 Node.js 身份验证服务器

标签 angularjs node.js authentication mean-stack

我的服务器上运行着两个独立的应用程序(基于 MEAN 堆栈的 app1 和 app2)。我想添加一个新的应用程序来管理这两个应用程序的身份验证。我的意思是,如果我尝试从 app1 登录,它会将我重定向到身份验证应用程序中的登录表单,登录后我会返回到 app1 中的上一个网址。之后,如果我转到 app2,我仍然处于登录状态。

我希望实现类似于 Google 帐户/ServiceLogin 的功能:我可以登录一次,并且几乎所有 Google 产品都会保留 session 。

重要的是我为每个应用程序使用子域:app1.mydomain.com 和 app2.mydomain.com。

如何使用 Node 和 Express 来做到这一点?

目前我使用vhost来管理每个子域。

最佳答案

您正在寻找单点登录解决方案。

我只熟悉 Stormpath 提供的一种解决方案,称为“ID 站点”。它基本上是一个托管身份验证站点,为您处理身份验证,然后在您的子域之间传递登录用户。

它的工作方式是这样的:

  • 用户访问 www.yousite.com。
  • 用户点击“登录”。
  • 用户被重定向到 login.yoursite.com。
  • 然后用户登录。
  • 然后,用户将被重定向到dashboard.yoursite.com 并经过完全身份验证 (SSO)。

您可以使用 express-stormpath, 轻松实现此目的这是相关文档:https://docs.stormpath.com/nodejs/express/product.html#use-hosted-login

关于angularjs - 设置第三方 Node.js 身份验证服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711739/

相关文章:

node.js - 使用 Docker 构建应用程序堆栈

node.js - Passport.js + Express.js 验证后将用户转发到原始目的地

javascript - AngularJS 传递范围?

javascript - NG-REPEAT 什么也不显示..即使数据解析成功

javascript - 使用查询参数转换到状态

node.js - 在node.js上使用signInWithCredential时如何修复TypeError? [编辑: bug in Firebase 6. 2.2]

angularjs - Angular 精确过滤器

node.js - 在 Docker 容器中安装新的 Node 依赖项

javascript - WebAuthn:无法创建公钥。 promise 被拒绝

authentication - 在 Subversion 中,我可以是登录名以外的用户吗?