使用Passport Facebook代币策略发布RESTAPI让我抓狂
我有一个移动前端,已经有facebook认证工作。我有一个存储用户数据、帖子等的sailsrestapi。。我想增加安全性,facebook用户只能发布自己的数据 我已经阅读了几乎所有关于facebook验证web应用程序的教程,但还没有找到很多关于使用移动应用程序进行验证以保护用户数据的教程。我试着让Passport Facebook Token正常工作,但我只是不理解可用的小文档。我来自objective-C背景,所以现在在节点学习曲线中 以下是我正在使用的链接,但我显然遗漏了一些东西: 我有: AuthController.js使用Passport Facebook代币策略发布RESTAPI让我抓狂,facebook,api,rest,sails.js,facebook-access-token,Facebook,Api,Rest,Sails.js,Facebook Access Token,我有一个移动前端,已经有facebook认证工作。我有一个存储用户数据、帖子等的sailsrestapi。。我想增加安全性,facebook用户只能发布自己的数据 我已经阅读了几乎所有关于facebook验证web应用程序的教程,但还没有找到很多关于使用移动应用程序进行验证以保护用户数据的教程。我试着让Passport Facebook Token正常工作,但我只是不理解可用的小文档。我来自objective-C背景,所以现在在节点学习曲线中 以下是我正在使用的链接,但我显然遗漏了一些东西: 我
module.exports = {
facebook: function(req, res) {
passport.authenticate('facebook-token', function(error, user, info) {
// do stuff with user
res.ok();
})(req, res);
}
};
api/services/protocols/passport.js
(使用默认passport sail中的一些其他内容生成auth)
var facebook-tokenstrategy=require('passport-facebook-token');
passport.use('facebook-token',新的FaceBookToken策略({
客户ID:“,
客户机密:“
},
函数(accessToken、refreshToken、profile、done){
//控制台日志(概要文件);
变量用户={
“电子邮件”:配置文件。电子邮件[0]。值,
“名称”:profile.name.givenName+“”+profile.name.familyName,
“id”:profile.id,
“令牌”:accessToken
}
//此时,您可以对用户执行任何必要的操作,
//例如,根据用户表进行内部验证,
//创建新的用户条目等。
return done(null,user);//我们刚刚创建的用户对象作为'req.user'传递给路由的控制器`
}
));
我是否必须对config/routes进行一些操作,以确保它只允许用户使用access\u令牌?我就是找不到任何资源。Passport甚至没有将Passport Facebook代币策略列为他们网站上的选项
谢谢你的帮助
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`
}
));