如何使用Passport验证Sails JS应用程序?

时间:2014-11-26 11:35:38

标签: node.js authentication sails.js passport.js

我正在使用Sails v0.10.5。我想使用Passport将身份验证系统与用户名和密码集成。为此,我正在阅读以下文件:

但是,我在评论中看到这些已经过时,不再适用于风帆v0.10.5。我试过这些,它没有进行身份验证,我能够在没有任何身份验证的情况下访问所有控制器操作。

是否有任何更新版本或任何其他有用的文档进行集成?

3 个答案:

答案 0 :(得分:7)

我强烈建议您尝试使用sails-generate-auth生成器。它基于护照,它为您的sails.js应用程序创建完整的身份验证层,包括本地策略(用户/密码),OAuth2.0和OpenID。

Sails-generate-auth将为您创建两个新模型(用户,Passport),身份验证控制器,服务,配置路由和策略。 因此,如果您想对现有应用程序应用身份验证,那么创建新的sails应用程序,使用 sails-generate-auth 生成身份验证层,稍微测试一下然后将必要的文件复制到您的原始申请。

希望有所帮助。

修改

sails-auth也是一个很好的解决方案。与sails-generate-auth类似,它会生成所有必要的模型和服务,因此您可以轻松地将其连接到现有服务。

答案 1 :(得分:2)

使用支持电子邮件,Twitter和Facebook的 passport.js 查看 sails.js 这个易于使用的示例:https://github.com/bmustata/sails-auth-super-template

答案 2 :(得分:0)

在测试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
 }

第5步:更改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

以下是有关如何在风帆中创建基于令牌的身份验证的精彩指南:https://github.com/carlospliego/sails-token-auth-setup