Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Passport Facebook代币策略发布RESTAPI让我抓狂_Facebook_Api_Rest_Sails.js_Facebook Access Token - Fatal编程技术网

使用Passport Facebook代币策略发布RESTAPI让我抓狂

使用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背景,所以现在在节点学习曲线中 以下是我正在使用的链接,但我显然遗漏了一些东西: 我

我有一个移动前端,已经有facebook认证工作。我有一个存储用户数据、帖子等的sailsrestapi。。我想增加安全性,facebook用户只能发布自己的数据

我已经阅读了几乎所有关于facebook验证web应用程序的教程,但还没有找到很多关于使用移动应用程序进行验证以保护用户数据的教程。我试着让Passport Facebook Token正常工作,但我只是不理解可用的小文档。我来自objective-C背景,所以现在在节点学习曲线中

以下是我正在使用的链接,但我显然遗漏了一些东西:

我有:

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/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`
  }
));