首页 > 解决方案 > 使用laravel护照登录后尝试获取非对象的属性“名称”

问题描述

嗨,我已经使用 laravel 护照(个人访问令牌)构建了一个登录系统,所以当我想登录并重定向到主页后,它会显示“尝试获取非对象的属性'名称'”我知道来源错误是当我删除构造“$this->middleware('auth')”时,他无法恢复经过身份验证的用户的名称,但是当我放置构造时,登录无法将我重定向到主页任何解决方案的人:这是我的 currentUser.js:

import axios from "axios";

 const state ={
   user:{

    }

 };
  const getters= {};
 const actions = {
loginUser({},user){
   axios.post("/api/login",{
       email: user.email,

       password: user.password
   })
   .then(response=>{
       console.log(response.data);
      if( response.data.acces_token){
           //save token mte3na fi locoal storage
           localStorage.setItem(
               "membre_token",
               response.data.acces_token
           )

           window.location.replace("/home");
       }

   })
}
};
  const mutations={};

    export default{
    namespaced:true,
    state,
    getters,
     actions,
    mutations
     }

  and this is my web.php:

Route::get('/', function () {
return view('welcome');
  });



 Route::get('/home', 'HomeController@index')->name('home');
 Route::get('/{any}', 'HomeController@index')->where('any','.*');

这是我的家庭控制器:

        <?php

    namespace App\Http\Controllers;
    use Illuminate\Support\Facades\Auth;
     use Illuminate\Http\Request;

  class HomeController extends Controller
  {
/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
  // $this->middleware('auth');
}

/**
 * Show the application dashboard.
 *
 * @return \Illuminate\Contracts\Support\Renderable
 */
public function index()
{

    return view('home');
}
}

这是我在 api.php 中的登录路由器

Route::post('/login','API\AuthenController@login');

这是我在 AuthenController 中的登录功能:

    public function login(Request $request){
 $validation=$this->validate($request,[
       'email'  =>'required|email',
       'password'=>'required',
      ])  ;

   if(!Auth::attempt($validation)){
       return response(['status'=>'error','message'=>'user Undefined']);
   }
 $accesToken =Auth::user()->createToken('TokenName')->accessToken;
 return response(['user'=>Auth::user(), 'acces_token'=>$accesToken]);
 }

标签: laravelvue.jsvuexlaravel-6laravel-6.2

解决方案


推荐阅读