Sails.js API passport.js 认证
Sails.js API passport.js authentication
我正在尝试在 Sails.js 中开发一个 API 后端。
我需要的最基本的东西是身份验证。
有了这个,我找到了 sails-generate-auth
生成器,我已经按照列出的所有步骤进行操作
sails-generate-auth .
现在,当我访问 http://localhost:1337/register
时,我看到一个简单的注册表单,登录也是如此,登录后,我在浏览器中看到一个 cookie 设置为 sails.sid
。
检查 AuthController.js
后,我发现它是为服务器渲染视图编写的。
我应该如何修改 controller/sailsApp 以便它支持基于 API 的身份验证。
我最希望拥有:
通过post接受用户名和密码的注册路由
内容类型 application/json.
接受用户名和密码的登录路径
content-type application/json 和 return 带有不记名令牌,以便前端应用程序可以在下次发出请求时将其添加到其 header。
auth ACL 下的所有其他路由将检查承载
令牌存在并经过验证。
在您的 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('/');
现在,当客户端发送 login/register 请求时,服务器将响应 JSON 响应。确保您在其他 sails 应用程序操作中请求令牌。
我已经使用这些步骤一段时间了。
第 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 安装 --save bcrypt-nodejs
- npm 安装 --save jsonwebtoken
- npm install --save express-jwt
您的端点将如下所示:
- POST/GET/PUT/DELETE 用户/
- POST auth/login
- 删除auth/logout
这是关于如何在 sails 中创建基于令牌的身份验证的重要指南:https://github.com/carlospliego/sails-token-auth-setup
我正在尝试在 Sails.js 中开发一个 API 后端。
我需要的最基本的东西是身份验证。
有了这个,我找到了 sails-generate-auth
生成器,我已经按照列出的所有步骤进行操作
sails-generate-auth .
现在,当我访问 http://localhost:1337/register
时,我看到一个简单的注册表单,登录也是如此,登录后,我在浏览器中看到一个 cookie 设置为 sails.sid
。
检查 AuthController.js
后,我发现它是为服务器渲染视图编写的。
我应该如何修改 controller/sailsApp 以便它支持基于 API 的身份验证。
我最希望拥有:
通过post接受用户名和密码的注册路由 内容类型 application/json.
接受用户名和密码的登录路径 content-type application/json 和 return 带有不记名令牌,以便前端应用程序可以在下次发出请求时将其添加到其 header。
auth ACL 下的所有其他路由将检查承载 令牌存在并经过验证。
在您的 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('/');
现在,当客户端发送 login/register 请求时,服务器将响应 JSON 响应。确保您在其他 sails 应用程序操作中请求令牌。
我已经使用这些步骤一段时间了。
第 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 安装 --save bcrypt-nodejs
- npm 安装 --save jsonwebtoken
- npm install --save express-jwt
您的端点将如下所示:
- POST/GET/PUT/DELETE 用户/
- POST auth/login
- 删除auth/logout
这是关于如何在 sails 中创建基于令牌的身份验证的重要指南:https://github.com/carlospliego/sails-token-auth-setup