【问题标题】:Sails.js API passport.js authenticationSails.js API 护照.js 认证
【发布时间】:2015-07-03 23:05:49
【问题描述】:

我正在尝试在 Sails.js 中开发 API 后端。

我需要的最基本的东西是身份验证。

这样,我找到了sails-generate-auth 生成器,我已经按照下面列出的所有步骤进行了操作 sails-generate-auth.

现在,当我访问http://localhost:1337/register 时,我看到一个简单的注册表单,登录时也是如此,登录后,我在浏览器中看到一个cookie 设置为sails.sid

检查AuthController.js 后,我发现它是为服务器渲染视图编写的。

我应该如何修改控制器/sailsApp 以使其支持基于 API 的身份验证。

我希望拥有:

  1. 通过邮寄接受用户名和密码的注册路由 内容类型为 application/json。

  2. 接受用户名和密码的登录路径 content-type application/json 并返回一个不记名令牌,以便前端应用可以在下次发出请求时将其添加到其标头中。

  3. auth ACL 下的所有其他路由将检查承载是否 令牌存在并经过验证。

【问题讨论】:

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


    【解决方案1】:

    在你的 AuthController 回调函数中替换这个:

    res.redirect('/');
    

    用这个:

    console.log(user);
    var userID = user.id;
    Passport.find({user: userID}, function(err, items){
        if(err) return err;
    
        console.log(items[0].accessToken);
        // Make sure you dont give them any sensetive data
        res.json({userData: user, token: items[0].accessToken});
    });
    // Upon successful login, send the user to the homepage were req.user
    //res.redirect('/');
    

    现在,当客户端发送登录/注册请求时,服务器将以 JSON 响应进行响应。确保您在其他 Sails 应用操作中请求令牌。

    【讨论】:

    • 嘿,谢谢。哦,这很简单!
    【解决方案2】:

    我已经使用这些步骤一段时间了。

    第 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 用户/
    • POST 身份验证/登录
    • 删除身份验证/注销

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

    【讨论】:

      猜你喜欢
      • 2022-11-28
      • 2019-03-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 2022-08-05
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      相关资源
      最近更新 更多