gpt4 book ai didi

node.js - 护照 facebook 注销不起作用

转载 作者:行者123 更新时间:2023-12-02 03:21:40 27 4
gpt4 key购买 nike

我试图实现护照 Facebook 我在 server.js 中的代码如下所示当用户通过 facebook 点击登录时使用的路由

 router.get('/auth/facebook',
passport.authenticate('facebook',{ scope : 'email' }),
function(req, res){
});

成功登录后,它会重定向到 success.html 作为注销按钮

 router.get('/auth/facebook/callback',
passport.authenticate('facebook', {
successRedirect : '/success',
failureRedirect: '/'
}),
function(req, res) {
res.render('success.html');
});

注销路径是

  router.get('/logout', function(req, res){
req.logout();
res.redirect('/');
});

如果我仍然点击注销按钮,我将被重定向到主页

router.get('/', function(req, res){
res.render('auth.html');
});

auth.html

  <html>
<head>
<title>Node.js OAuth</title>
</head>
<body>
<a href="/auth/facebook">Sign in with Facebook</a>
</body>
</html>




but after if i click the Sign in with Facebook link i will directly take to success.html page and again i was never able to see the Facebook login page where we provide the credentials of the Facebook account

*我尝试从数据库中删除详细信息,但它仍然指向 success.html*我尝试通过删除 cookie 以及浏览器的新实例*运气不好,请指出我可能犯的错误

最佳答案

您的页面被重定向到“success.html”,因为 Facebook 会记住登录凭据。除非您手动从 Facebook 注销,否则您的应用程序将始终被重定向到“success.html”。

这是从您的应用程序中退出 Facebook 的方法。

在您的 logout.html 页面中:

<form action="/logoutFromFacebook" method="POST">
<input type="hidden" name="accessToken" value="<%= user.accessToken %>"/>
</form>

以下代码进入您的 Controller :

router.post('/logoutFromFacebook', function(req, res) {
res.redirect('https://www.facebook.com/logout.php?next='+server.ip+'/logout&access_token='+req.body['accessToken']);
});

router.get('/logout', function(req, res){
req.logout();
res.redirect('/');
});

server.ip 需要是您的应用运行的 url。
例如:http://localhost:3000如果它在本地运行
或者
http://128.800.90.67:3000如果它在远程运行

关于node.js - 护照 facebook 注销不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32985655/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com