【发布时间】:2014-11-30 13:07:35
【问题描述】:
我对风帆很陌生,但是在阅读了文档并在互联网上遵循了一些示例后,我决定试一试;)
我已经制作了一个依赖于 REST Web 服务的 APP,我想在 Sails 框架中构建它 - 但经过大量研究后,我还没有在 Sails 中找到合适的解决方案。
我想我想在从应用发出的每个 Web 服务调用中传递一个(用户名、密码)或一个 api_key?
我发现的所有示例都只是使用会话登录方法 - 而不是每次调用中都使用 API 密钥。
我使用了这个教程 - http://jethrokuan.github.io/2013/12/19/Using-Passport-With-Sails-JS.html
但仅在登录页面后登录 - 我希望它在每次调用时都登录,并且仍然希望使用 REST API 蓝图中的构建。
我的解决方案中的问题是这样的调用 - 由于默认的 REST 方法,不会像预期的那样给我所有用户 - 我希望它对用户进行身份验证并给我结果..
http://example.com:1337/user/?username=test&password=xxx
构建带有 REST Web 服务后端的 APP 的“最佳实践”是什么? - “有帆”
我的一些授权码:
// policies/authentication.js
if(req.param('username') && req.param('password')) {
UserAuth.auth(req, res, function(err, user) {
if (err) return res.forbidden('You are not permitted to perform this action.');
if(user) {
return next();
}
});
}else{
return res.forbidden('You are not permitted to perform this action.');
}
// services/UserAuth.js
module.exports = {
auth : function(req, res, cb) {
var bcrypt = require('bcrypt');
var passport = require("passport");
passport.authenticate('local', function(err, user, info){
if (err) return cb({ error: 'auth error!', status: 400 });
if(user) {
cb(null, user);
}
})(req, res);
}
}
// config/policies.js
module.exports.policies = {
'*': "authentication"
};
【问题讨论】:
-
这是护照问题吗?你应该给它护照标签吗?
标签: web-services sails.js