【问题标题】:Laravel passport application how to handle internal requestsLaravel 护照申请如何处理内部请求
【发布时间】:2019-05-08 07:22:30
【问题描述】:

我有一个我最近安装了 laravel 护照的 laravel 应用程序。此应用程序进行一系列内部 api 调用以检索数据。每当我进行这些内部 api 调用时,使用 laravel 护照,它都会返回一条未经身份验证的错误消息。

我已将“auth:api”中间件添加到我的 api 路由中,并希望能够在内部访问它们。我是否需要随请求发送不记名令牌以允许请求通过。另外我将如何生成这个令牌?

这是一个调用内部 api 调用的代码示例。

public function postToApi($url, $data) {
    $req = Request::create($url, 'POST', $data);
    try {
        $res = app()->handle($req);
    } catch (Exception $e) {
        return "not found";
    }
}

这是路线外观的示例

Route::group(['middleware' => 'auth:api', 'prefix' => 'api', 'namespace' => 'Modules\Forum\Http\Controllers'], function(){
Route::get('reply/{id}', 'ReplyApiController@show' );
Route::get('thread/{id}', 'ThreadApiController@show' );});

【问题讨论】:

标签: laravel laravel-passport


【解决方案1】:

第一个解决方案是将其添加到根文件夹的.htaccess(不仅在公用文件夹内)

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

将第二个解决方案添加到您的 Kernel.php 中间件组中。

\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,

第三种解决方案

/**
/* Indicates if cookies should be serialized.
/*
/* @var bool
 */
protected static $serialize = true;

Http/Middleware/EncryptCookies.php 中为我修复了它。

【讨论】:

    猜你喜欢
    • 2019-09-13
    • 2021-08-08
    • 2017-02-24
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2014-08-26
    • 1970-01-01
    相关资源
    最近更新 更多