我正在尝试在Sails.js中开发API后端。
我需要的最基本的东西是身份验证。
有了这个,我找到了sails-generate-auth
生成器,我已经按照列出的所有步骤进行了操作
sails-generate-auth。
现在,当我访问http://localhost:1337/register
时,我会看到一个简单的注册表单,同样适用于登录,登录后,我在浏览器中看到一个Cookie设置为sails.sid
。
检查AuthController.js
后,我发现它已经为服务器渲染视图编写。
我应该如何修改controller / sailsApp以使其支持基于API的身份验证。
我希望有:
通过邮寄接受用户名和密码的注册路由 内容类型为application / json。
可以接受用户名和密码的登录路线 content-type application / json并使用bearer token返回,以便前端应用程序可以在下次发出请求时将其添加到其标题中。
auth ACL下的所有其他路由,用于检查是否为承载 令牌已存在且已经过验证。
答案 0 :(得分:2)
在你的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响应进行响应。确保您在其他风帆应用操作上请求令牌。
答案 1 :(得分:1)
我一直在使用这些步骤。
第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步:(依赖关系)
您的终端将如下所示:
以下是有关如何在风帆中创建基于令牌的身份验证的精彩指南:https://github.com/carlospliego/sails-token-auth-setup