Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – passport.js – facebook策略注销问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用此 login example设置Facebook身份验证.示例有效,但当我退出并尝试再次登录时,护照会自动让我进入,而不会给我一个更改Facebook用户的选项.有关如何改变这种行为的任何想法?

解决方法

认情况下,如果您已经授权使用Facebook登录,则后续的身份验证请求将是自动的,并且不会提示用户再次进行授权.有三个选项可以更改此行为:

1.将用户退出Facebook

这是不可取的,因为您只想将用户从应用程序中注销而不是完全从Facebook注销.

2.从Facebook应用程序中取消授权用户

这是你最好的选择.为此,请使用有效的Facebook访问令牌对https://graph.facebook.com/me/permissions进行http deletE调用.阅读更多https://developers.facebook.com/docs/reference/api/user/#permissions.

3.强制用户每次登录时重新进行身份验证

Facebook支持auth_type参数,该参数将在每次设置为reauthenticate时提示用户登录.阅读更多https://developers.facebook.com/docs/howtos/login/client-side-re-auth/.

Passport.js不支持将此参数开箱即用,因此您可能需要进行一些黑客操作才能使其在您的应用程序中运行,或者向passport-facebook GitHub项目提交拉取请求.

但是,您可以选择通过使用特定参数来提示用户每次重新进行身份验证.下面这样做的工作但是hacky和不推荐的方式:

FacebookStrategy.prototype.authorizationParams = function (options) {
  var params = {},display = options.display,auth_type = options.auth_type;
  if (display) params['display'] = display;
  if (auth_typE) params['auth_type'] = auth_type;
  return params;
};
passport.use(new FacebookStrategy({
    clientID: FACEBOOK_APP_ID,clientSecret: FACEBOOK_APP_SECRET,callBACkURL: "http://localhost:3000/auth/facebook/callBACk",auth_type: "reauthenticate"
  },function(accessToken,refreshToken,profile,donE) {
    process.nextTick(function () {
      return done(null,profilE);
    });
  }
));

大佬总结

以上是大佬教程为你收集整理的node.js – passport.js – facebook策略注销问题全部内容,希望文章能够帮你解决node.js – passport.js – facebook策略注销问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。