提问者:小点点

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


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

我已将'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' );});

共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/EncryptCookie 中.php为我修复了它。