我开发了一个带有 javascript(无需重新加载)的动态页面,用户可以在其中插入私人号码。
然后我发送一个 Ajax 请求以手动登录与该号码关联的用户。
此后,如果用户愿意,他可以退出(发送 Ajax 请求以注销)并且主页出现再次登录。
重现步骤:
注意:如果我在退出(注销)后刷新页面,则第二次登录有效。
-> 发送 Ajax 请求以 verifyNIF() 的代码
$('#start').on('click', function() {
$.ajax({
url: '/' + slug + '/vote-in-person/verify-nif',
type: "POST",
data: {
nif: nif
},
dataType: "json",
success: function (data) {
//NIF VERIFIED AND USER LOGGED IN
}
});
});
-> verifyNIF() 验证数据库上的数字,然后验证用户
Auth::login($user);
-> logout() 函数,使用 Laravel Fortify 注销路由。
function logout(){
$.ajax({
url: '/logout',
type: "POST",
success: function () {
console.log("logged out");
// location.reload();
},
error: function (data) {
console.log(data);
}
})
}
答案 0 :(得分:1)
在前端,通过ajax请求注销后CSRF令牌失效。您可以添加新端点以手动刷新 CSRF 令牌。我认为这对你有帮助。 https://stackoverflow.com/a/57252273/9215587