我在哪里使用laravel和vuejs在SPA应用程序中进行身份验证?我正在使用laravel和blade开发一个普通的Web应用程序。没有什么不寻常的,但是,现在,我正在尝试使用laravel和vuejs制作spa应用程序 - 后端从前端分离。在这个例子中我需要在哪里进行身份验证?在PHP路由或vuejs路由或两者?我的laravel应用程序,只有laravel,它按预期工作,用户权限,用户会话,正常的应用程序,但在vuejs,我如何做同样的验证?
答案 0 :(得分:0)
在不知道您确切的Laravel身份验证设置的情况下,我只会说您在与Laravel相同的路径上通过ajax进行身份验证。在使用axios的相当标准的设置中,我这样做。
ajaxLogin(){
axios.post('/login',{
email: this.loginEmail,
password: this.loginPassword
}).then(function (res) {
this.getCrsfToken(); //refresh crsf token
}.bind(this));
}
请注意getCrsfToken
功能。如果在注销和重新登录时没有刷新SPA(页面),则可能需要这样做。就像会话在浏览器窗口打开时到期一样。如果你在标题中包含标准的Laravel方法,你可以使用类似下面的内容刷新crsf标记。
在您的路线或控制器
中Route::get('/getToken', function(){
return csrf_token();
})->middleware('auth');
在你的Vue组件
中getCrsfToken(){
axios.get('/getToken')
.then(function(res){
// Refresh crsf token from session after login
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = res.data;
});
},