我有一个已经有facebook认证工作的移动前端。我有一个存储用户数据,帖子等的Sails REST API。我想添加安全性,其中facebook用户只能POST POST删除PUT他们自己的数据。
我已经阅读了几乎所有关于Facebook验证网络应用程序的教程,但还没有找到许多用于通过移动应用程序进行身份验证来保护用户数据。我试图让Passport-Facebook-Token工作,但我只是不了解可用的小文档。我现在来自目标C背景,所以在节点学习曲线中。
这是我与之合作的链接,但我显然遗漏了一些内容:https://github.com/drudge/passport-facebook-token
我有:
AuthController.js
module.exports = {
facebook: function(req, res) {
passport.authenticate('facebook-token', function(error, user, info) {
// do stuff with user
res.ok();
})(req, res);
}
};
API /服务/协议/ passport.js (使用默认护照sails-generate-auth中的其他一些东西)
var FacebookTokenStrategy = require('passport-facebook-token');
passport.use('facebook-token', new FacebookTokenStrategy({
clientID : "<my_id>",
clientSecret : "<my_secret>"
},
function(accessToken, refreshToken, profile, done) {
// console.log(profile);
var user = {
'email': profile.emails[0].value,
'name' : profile.name.givenName + ' ' + profile.name.familyName,
'id' : profile.id,
'token': accessToken
}
// You can perform any necessary actions with your user at this point,
// e.g. internal verification against a users table,
// creating new user entries, etc.
return done(null, user); // the user object we just made gets passed to the route's controller as `req.user`
}
));
我是否必须对config / routes执行某些操作以确保它只允许具有access_tokens的用户?我只是找不到任何资源。 Passport甚至没有将Passport-Facebook-Token策略列为其网站上的一个选项。
感谢您的帮助