【问题标题】:IOS Facebook Authentication Using node.js passport-facebook-tokenIOS Facebook 身份验证使用 node.js 护照-facebook-token
【发布时间】:2013-09-04 11:32:27
【问题描述】:

我正在尝试使用来自 IOS 应用程序的 passport-facebook-token 对 node.js api 进行身份验证。

我有用户名和密码身份验证设置,并且按照示例通过护照和护照-facebook-token 设置正常工作。

passport.use(new FacebookTokenStrategy({
clientID: config.facebook.clientID,
clientSecret: config.facebook.clientSecret
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate({ facebookId: profile.id }, function (err, user) {
return done(err, user);
});

我只是想不通将访问令牌发送到 API 所需的 HTTP 请求语法。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: ios node.js api passport.js


    【解决方案1】:

    您也可以使用标题来执行此操作。卷曲

    curl localhost:3000/endpoint -H "Authorization: Bearer <facebook token>" 
    

    【讨论】:

      【解决方案2】:

      OK 设法从 passport-facebook-token 的策略文件中找出答案

      需要:

      http://URL?access_token=[访问令牌]

      从 IOS 我简单地测试了这个:

      NSString *fbAccessToken = [[[FBSession activeSession] accessTokenData] accessToken];
      NSLog(@"This is token: %@", fbAccessToken);        
      NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://myapi.url.com/auth/facebook?access_token=%@",fbAccessToken]];
      NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];
      [req setHTTPMethod:@"GET"];
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
      NSURLResponse *res;
      NSError *err;
      [NSURLConnection sendSynchronousRequest:req returningResponse:&res error:&err];
      if (!err) {
      NSLog(@"The user is logged in on the server side too");
      } else {
      NSLog(@"Error occurred. %@", err);
      }
      });    
      

      希望这对其他人有所帮助。

      【讨论】:

      • 你的nodejs代码是什么样子的?我正在尝试类似的解决方案,但它显示“错误:没有以名称注册的策略:facebook”。您是如何创建路线的?
      • 我刚刚查看了策略文件
      猜你喜欢
      • 2013-08-26
      • 2016-01-19
      • 2015-08-21
      • 2019-01-06
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 2019-12-07
      相关资源
      最近更新 更多