2013-09-01 77 views
6

Tôi đang cố gắng xác thực api node.js bằng cách sử dụng passport-facebook-token từ ứng dụng iOS.Xác thực Facebook IOS Sử dụng node.js passport-facebook-token

Tôi có thiết lập xác thực tên người dùng và mật khẩu và hoạt động tốt thông qua hộ chiếu và thiết lập hộ chiếu-facebook-token theo ví dụ.

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

Tôi không thể tìm ra cú pháp yêu cầu HTTP cần thiết để gửi mã thông báo truy cập qua API.

Mọi trợ giúp sẽ được đánh giá cao.

Cảm ơn.

Trả lời

18

OK quản lý để tìm ra câu trả lời từ các tập tin chiến lược từ hộ chiếu-facebook-thẻ

Nó đòi hỏi:

http: // URL access_token = [access token]

Từ IOS tôi chỉ cần thử nghiệm điều này với:

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

Hy vọng điều này sẽ giúp người khác.

+1

Mã nút của bạn trông như thế nào? Tôi đang thử giải pháp tương tự nhưng nó nói "Lỗi: không có chiến lược đăng ký dưới tên: facebook". Bạn đang tạo các tuyến đường của mình như thế nào? – Rafael

+0

Bạn đã tìm thấy tài liệu này ở đâu trong tài liệu? – danielrvt

+0

Tôi chỉ nhìn vào tệp chiến lược – poperob