2013-09-01 40 views
6

我試圖從iOS應用程序使用passport-facebook-token對node.js api進行身份驗證。IOS Facebook身份驗證使用node.js passport-facebook-token

我有用戶名和密碼驗證設置,並通過護照和護照,Facebook的令牌設置按照例子正常工作。

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請求語法。

任何幫助將大規模讚賞。

謝謝。

回答

18

OK設法從戰略文件從護照Facebook的令牌

它需要制定出答案:

的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); 
} 
});  

希望這可以幫助別人。

+1

你的nodejs代碼是怎樣的?我正在嘗試類似的解決方案,但它說「錯誤:沒有名稱下注冊的戰略:facebook」。你是如何創建你的路線? – Rafael

+0

你在文檔中的哪個位置找到了這個? – danielrvt

+0

我剛剛查看了戰略文件 – poperob