无法验证iOS Facebook SDK中PassportJS的访问令牌
我正在尝试将Facebook iOS sdk与PassportJS一起使用(服务器是NodeJS) 我成功地用我的iOS应用程序登录了Facebook。接下来我要做的是将访问令牌移交给服务器,并从那里进行验证。不幸的是,它根本不起作用 奇怪的是,对于我的网站来说,它工作得很好。我只是使用回调url将令牌发布到服务器 那么在代码中,facebook登录后会发生什么(这是有效的) 然后,在登录控制器中收到通知:无法验证iOS Facebook SDK中PassportJS的访问令牌,ios,facebook,node.js,Ios,Facebook,Node.js,我正在尝试将Facebook iOS sdk与PassportJS一起使用(服务器是NodeJS) 我成功地用我的iOS应用程序登录了Facebook。接下来我要做的是将访问令牌移交给服务器,并从那里进行验证。不幸的是,它根本不起作用 奇怪的是,对于我的网站来说,它工作得很好。我只是使用回调url将令牌发布到服务器 那么在代码中,facebook登录后会发生什么(这是有效的) 然后,在登录控制器中收到通知: - (void) facebookLogin: (NSNotification*) no
- (void) facebookLogin: (NSNotification*) notification
{
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
NSString *token = [notification.userInfo objectForKey:@"token"];
[[CBApi sharedAPI] get:@"api/auth/facebook/callback" andParams:@{
@"code": token
} andCallback:^(NSDictionary *json) {
[MBProgressHUD hideHUDForView:self.view animated:YES];
if ([json objectForKey:kError]) {
Alert(@"Error", @"Login details failed");
} else {
User *u = [User createEntity];
u.email = self.emailField.text;
[self dismissViewControllerAnimated:YES completion:nil];
}
}];
}
然后我从服务器返回此错误(从控制台复制粘贴):
正如我所说,当使用网站登录时,它完全可以工作,没有问题,只是它不接受iOS本机生成的访问令牌。我以前从来没有这样做过。如果你能帮我,那就太好了,谢谢你 我想出来了!对于任何有同样问题的人,这就是我所做的: 与其使用passportjs的常规Facebook策略,不如使用以下策略: 它允许您使用主动访问令牌,对我来说几乎是一个替代品。
该服务器在网站上使用了旧的facebook策略(passpostjs附带的策略)和用于iOS登录的facebookstrategy令牌。我找到了答案!对于任何有同样问题的人,这就是我所做的: 与其使用passportjs的常规Facebook策略,不如使用以下策略: 它允许您使用主动访问令牌,对我来说几乎是一个替代品。 该服务器在网站上使用旧的facebook策略(passpostjs附带的策略)和用于iOS登录的facebookstrategy令牌
- (void) facebookLogin: (NSNotification*) notification
{
[MBProgressHUD showHUDAddedTo:self.view animated:YES];
NSString *token = [notification.userInfo objectForKey:@"token"];
[[CBApi sharedAPI] get:@"api/auth/facebook/callback" andParams:@{
@"code": token
} andCallback:^(NSDictionary *json) {
[MBProgressHUD hideHUDForView:self.view animated:YES];
if ([json objectForKey:kError]) {
Alert(@"Error", @"Login details failed");
} else {
User *u = [User createEntity];
u.email = self.emailField.text;
[self dismissViewControllerAnimated:YES completion:nil];
}
}];
}
failed to obtain access token (status: 400 data: {
"error": {
"message": "Invalid verification code format.",
"type": "OAuthException",
"code": 100
}
})