我有一个风帆应用程序。我试图实施Facebook登录。当我点击Login with facebook按钮时,我收到此错误:
=LOOKUP(DATE(2016,5,P6), Table1[[Date]:[Date]], Table1[[Paper Name]:[Paper Name]])
完整错误日志如下所示:
error: A server error occurred in a request:
error: FacebookTokenError: This authorization code has been used.
中间件代码如下所示:
error: A server error occurred in a request:
error: FacebookTokenError: This authorization code has been used.
at Strategy.parseErrorResponse (/home/node_modules/passport-facebook/lib/strategy.js:198:12)
at Strategy.OAuth2Strategy._createOAuthError (/home/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:341:16)
at /home/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:166:45
at /home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18
at passBackControl (/home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:123:9)
at IncomingMessage.<anonymous> (/home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7)
at IncomingMessage.emit (events.js:117:20)
at _stream_readable.js:944:16
at process._tickDomainCallback (node.js:492:13) { [FacebookTokenError: This authorization code has been used.]
name: 'FacebookTokenError',
message: 'This authorization code has been used.',
type: 'OAuthException',
code: 100,
subcode: undefined,
status: 500 }
任何人都可以建议我为什么会收到此错误以及任何可能的解决方案。
答案 0 :(得分:1)
使用facebook登录后记录此错误,之后删除数据库中的用户记录。您必须在Facebook帐户中删除您的APP,然后重试。
答案 1 :(得分:0)
另一个可能性是您已经登录,并且您的中间件正在尝试再次登录。在您的代码中,您没有在向“auth / facebook”发送请求之前检查用户是否已经登录。有一种简单的方法可以证明这一点:在私人模式下打开Chrome窗口,因此不使用cookie,并尝试再次登录你的facebook。祝你好运!
答案 2 :(得分:0)
可能不存在配置文件数据的某些属性。尝试:
console.log(profile)
用于验证配置文件的所有属性。就我而言:
{ id: 'nnnnnnnn',
username: undefined,
displayName: 'My Name',
name:
{ familyName: undefined,
givenName: undefined,
middleName: undefined },
gender: undefined,
profileUrl: undefined,
provider: 'facebook',
_raw: '{"name":"My name","id":"nnnnnnnn"}',
_json: { name: 'My name', id: 'nnnnnnnn' } }
不存在任何属性&#34;电子邮件&#34;或类似的,这会产生错误而不能完成身份验证的cicle生命周期:
error: FacebookTokenError: This authorization code has been used.
属性电子邮件未获取,因为我将其隐藏在我的帐户Facebook中。
在您的代码中:
...
var data = {
provider: profile.provider,
uid: profile.id,
name: profile.displayName,
email: profile.email
};
...
该行:
email: profile.email
您已假设属性电子邮件已存在。
尝试:
email: (profile.emails && profile.emails[0]) ? profile.emails[0].value : ''