使用vuejs和laravel进行身份验证

时间:2018-01-19 14:14:09

标签: vuejs2 laravel-5.5

我在哪里使用laravel和vuejs在SPA应用程序中进行身份验证?我正在使用laravel和blade开发一个普通的Web应用程序。没有什么不寻常的,但是,现在,我正在尝试使用laravel和vuejs制作spa应用程序 - 后端从前端分离。在这个例子中我需要在哪里进行身份验证?在PHP路由或vuejs路由或两者?我的laravel应用程序,只有laravel,它按预期工作,用户权限,用户会话,正常的应用程序,但在vuejs,我如何做同样的验证?

1 个答案:

答案 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;
          });  
 },