Laravel护照申请如何处理内部请求

时间:2018-12-06 14:54:33

标签: laravel laravel-passport

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

我已经在我的api路由中添加了“ auth: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' );});

1 个答案:

答案 0 :(得分:2)

第一种解决方案是将其添加到根文件夹的.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中为我修复了该问题。