我的Auth0帐户使用facebook(和其他人)登录。
我在Auth0规则中检测到这一点并且登录失败,但当用户再次点击登录时,他没有看到Facebook批准屏幕,也无法重新批准电子邮件权限。
简而言之,用户被卡住了!唯一的解决方案是从用户手动删除应用程序。
有什么想法吗?
取得一些进展:
我发现facebook sdk支持auth_type:“rerequest” 但是如何将它传递给Auth0?
答案 0 :(得分:2)
尝试使用prompt=consent
作为查询字符串中的附加参数。如果您使用的是锁:
auth0Lock.show({
...
authParams: { scope: 'openid offline_access', prompt:'consent'
},
...
})
答案 1 :(得分:2)
终于解决了!
从auth0支持获得了一些帮助
我们需要设置
prompt: 'consent'
这里有两个例子:
使用Auth0Lock(widget)对象:
auth0Lock.show({
callbackURL: window.location.href, //where to go back. must allow this url in dashboard
responseType: 'token', //this will cause the hash to return the token
authParams: {
scope: 'openid offline_access',
prompt: 'consent' // THIS WILL ASK THE USER TO APPROVE THE PERMISSIONS THAT HE DECLINED EARLIER
},
connection_scopes: {
'facebook': ['public_profile', 'email'], //this optional this this example
}
});
使用Auth0对象:
auth0.login({
popup: true, // to use popup and js callback or redirect with hashtag
connection: 'facebook',
state:"some_state"
scope: 'openid offline_access',
prompt: 'consent'
},
//if popup=true then will callback
function (err, profile, id_token, access_token, state, refreshToken) {
if (err) {
console.log("err", err);
} else {
console.log(id_token);
}
});