如何在Laravel中设置Sanctum以使用Android应用程序?出现419错误

问题描述

我有一个混合的vuejs应用程序,该应用程序可以在Web版本上正常工作,但是从Android版本调用它时,它是从Laravel服务器上获取419的。

AXIOS呼叫

vm.axios.get('/sanctum/csrf-cookie').then(response => {
  vm.logging = true;
  vm.axios({
    method: 'POST',url: '/api/login/employee',data:{
      email: vm.email,password: vm.password
    },}).then(function (response) {
    console.log(response.data)
    if(response.data.success){
      vm.axios.defaults.headers.common['Authorization'] = 'Bearer '+response.data.token;
      localStorage.setItem('bearer',vm.axios.defaults.headers.common['Authorization']);
      vm.$store.commit('updateUserData');
    }
  },function (error) {
    console.log(error.message)
  }).then(function (){
    vm.logging = false;          
  });
});

CORS

'paths' => ['api/*','sanctum/csrf-cookie'],'allowed_methods' => ['*'],'allowed_origins' => ['*'],'allowed_origins_patterns' => [],'allowed_headers' => ['*'],'exposed_headers' => [],'max_age' => 0,'supports_credentials' => true,

内核

protected $middleware = [
    // \App\Http\Middleware\TrustHosts::class,\App\Http\Middleware\TrustProxies::class,\Fruitcake\Cors\HandleCors::class,\App\Http\Middleware\CheckForMaintenanceMode::class,\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,\App\Http\Middleware\Trimstrings::class,\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,];

/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,\Illuminate\Session\Middleware\StartSession::class,// \Illuminate\Session\Middleware\AuthenticateSession::class,\Illuminate\View\Middleware\ShareErrorsFromSession::class,\App\Http\Middleware\VerifyCsrftoken::class,\Illuminate\Routing\Middleware\SubstituteBindings::class,],'api' => [
        EnsureFrontendRequestsAreStateful::class,'throttle:60,1',];

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)