gpt4 book ai didi

authentication - 如何在sails.js SPA 上处理多个身份验证策略?

转载 作者:行者123 更新时间:2023-12-03 20:58:59 28 4
gpt4 key购买 nike

如何在sails.js SPA 上处理多个身份验证策略?

我正在为前端和 sailsjs 构建一个基于 Angular 的单页应用程序为后端。现在我正在使用 sails-auth (内部使用 passportjs)将我的身份验证逻辑绑定(bind)到我的用户模型。

我的前端安装了多个 Passport 提供程序并可用,例如 passport-githubpassport-facebook ,也是经典passport-local这样用户也可以仅使用他的用户名和密码进行注册和登录。

我希望我的客户(单页应用程序,以及 future 的其他应用程序)在身份验证之后使用 token 而不是 cookie/ session ,以便更容易扩展并且跨域请求也将更容易。它还将使移动集成变得更加容易。

我知道我必须为 OAuth 提供者使用回调,这是我的目标流程:

enter image description here

我知道我可以替换我的sails-auth 的sessionAuth政策由 tokenAuth可以从 header 中读取 token 并查询 Tokens 的策略例如模型,但我的问题是:

  • 使用用户名/密码登录时,可以通过简单的 AJAX 调用发出请求,因此很容易将 token 传递回 SPA。当使用 github 等提供程序时,当调用回调时,我是否应该将 token 动态嵌入到我正在服务的 HTML 中?
  • sails 认证的 policies/passport.js 表明默认情况下它依赖内置 session 来持久登录/序列化和反序列化用户 ID。如何将它与 Sails 内置 session 分离,以便它为用户生成一个 token 并使用嵌入的 token 返回我的索引?

  • 先感谢您!

    最佳答案

    在 auth 路由上,您可以在后端( without session )中进行基于 passport.js 的身份验证,使用 tokenAuth 的 token 并将 token 转发给用户。

    然后对于安全路线,您可以放置​​ verifyToken调用您的策略(拦截每条路线)。

    免责声明:我自己没有尝试过。

    关于authentication - 如何在sails.js SPA 上处理多个身份验证策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29752803/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com