如何使用 Passport 对 Sails JS 应用程序进行身份验证? [复制]
Posted
技术标签:
【中文标题】如何使用 Passport 对 Sails JS 应用程序进行身份验证? [复制]【英文标题】:How to authenticate Sails JS application using Passport? [duplicate] 【发布时间】:2015-01-24 17:19:07 【问题描述】:我正在使用 Sails v0.10.5。我想使用 Passport 将身份验证系统与用户名和密码集成在一起。为此,我正在阅读以下文档:
[How To] Implement Passport.js Authentication with Sails.js CREATING A SAILS APPLICATION USING PASSPORT AUTHENTICATION但是,我在 cmets 中看到这些已过时,不再适用于sails v0.10.5。我尝试了这些,它没有进行身份验证,我无需任何身份验证即可访问所有控制器操作。
是否有任何更新版本或任何其他有用的集成文档?
【问题讨论】:
请参阅下面的评论,了解我为解决此问题所做的工作github.com/carlospliego/sails-token-auth-setup 【参考方案1】:在测试了sails-generate-auth、sails-auth 和waterlock 之后,我发现所有这些解决方案要么尝试做太多事情,要么没有正确完成所有事情。然后我决定提供一些帮助,并写一些关于如何做到这一点的说明。我已经使用这些步骤一段时间了。
第 1 步(全局):$ npm install -g sails
第 2 步(应用程序):$ sails new myApp
第 3 步(文件):将https://github.com/carlospliego/sails-token-auth-setup
中的每个文件复制到其对应的文件夹中
第 4 步(策略):将此代码添加到您的 config/policies.js
'*': "hasToken",
UserController:
"create": true
,
AuthController:
'*': true
第五步:更改config/tokenSecret.js
的值
第 6 步:(依赖项)
npm install --save passport
npm install --save passport-local
npm install --save bcrypt-nodejs
npm install --save jsonwebtoken
npm install --save express-jwt
您的端点将如下所示:
POST/GET/PUT/DELETE user/
POST auth/login
DELETE auth/logout
这里是关于如何在sails 中创建基于令牌的身份验证的精彩指南:https://github.com/carlospliego/sails-token-auth-setup
【讨论】:
【参考方案2】:我强烈建议您尝试sails-generate-auth 生成器。它基于护照,并为您的sails.js 应用程序创建整个身份验证层,包括本地策略(用户/密码)、OAuth2.0 和 OpenID。
Sails-generate-auth 将为您创建两个新模型(用户、护照)、身份验证控制器、服务、配置路由和策略。 因此,如果您想将身份验证应用于现有应用程序,创建新的sails 应用程序会更安全,使用 sails-generate-auth 生成身份验证层,对其进行一些测试,然后将必要的文件复制到您的原始申请。
希望对您有所帮助。
编辑
sails-auth 也是一个不错的解决方案。与sails-generate-auth 类似,它会生成所有必要的模型和服务,以便您可以轻松地将其连接到现有服务。
【讨论】:
谢谢!让我试试这个。 我试过sails-generate-auth。我已经按照他们的文档中提到的那样配置了所有内容。但是当我抬起服务器时,它无法正常工作。我能够访问所有控制器。这是一个示例应用程序:sails-passport。当我尝试时,这也有同样的问题。知道为什么会这样吗?我正在使用本地策略进行身份验证 成功了!我在上面的评论中得到了这个问题的答案。 Passport 没有拒绝访问控制器的策略。我必须为此制定另一个政策。 关于sails-generate-auth 的任何建议都开始被放弃并且几个月来没有任何有意义的更新? @ShawnStrickland 我刚刚编辑了我的答案。请查看sails-auth。【参考方案3】:查看这个易于使用的 sails.js 示例,其中 passport.js 支持电子邮件、Twitter 和 Facebook:https://github.com/bmustata/sails-auth-super-template
【讨论】:
以上是关于如何使用 Passport 对 Sails JS 应用程序进行身份验证? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Sails.js + Passport.js 获取当前登录用户
Sails.js + Passport.js 通过 websockets 进行身份验证
使用 passport.js、sails.js API 和 ember.js 登录 Facebook