首页 > 解决方案 > Laravel 在其他服务器上的每个 API 上都未经身份验证

问题描述

我正在使用带有最新 Passport 的 Laravel 7 来验证我的 API。

它在创建它的系统上运行良好,但在克隆到其他本地系统和生产服务器后它停止工作。

我每次都收到未经身份验证的错误。

我试过的:

  1. 我已经搜索了这个错误并访问了所有前十名结果和关于 SO 的多个问题,但徒劳无功。

  2. htaccess 已经有以下代码:

    RewriteEngine On
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
  3. 我的 API 路由文件如下所示:

    Route::middleware('auth:api')->get('/user', function (Request $request) {
        return $request->user();
    });
    
    // passport
    Route::group([
        'prefix' => 'auth'
    ], function () {
        Route::post('login', 'AuthController@login');
        Route::post('signup', 'AuthController@signup');
        Route::post('verify', 'AuthController@verify');
        Route::post('reset', 'AuthController@reset');
        Route::group([
          'middleware' => 'auth:api'
        ], function() {
            Route::get('logout', 'AuthController@logout');
            Route::get('user', 'AuthController@user');
        });
    });
    
  4. 我已经运行以下命令在新系统上安装护照:

    php artisan passport:install

  5. OAuth 表存在于数据库中。

  6. 然后我尝试删除 Passport 并尝试运行公共 API 请求,即使我收到未经身份验证的错误。

  7. 我的网络身份验证工作正常。

  8. 还将guards.api 更改为passport。

  9. 已经试过了php artisan optimize:clear

花了大约 2 天后来到这里。

请帮忙。

提前致谢

标签: laravellaravel-passport

解决方案


推荐阅读