首页 > 解决方案 > Laravel 护照:密钥路径“file:///tmp/SomeFileName.key”不存在或不可读

问题描述

在我的环境中,我使用了 2 个在 Laravel 中实现的客户端应用程序和一个在 Lumen 中实现的服务器应用程序。

当用户在 client1 端登录时,该用户的令牌被写入数据库,在 client2 上也会发生同样的事情。

从那里开始,我在每个请求的 Authentication-header 中发送不记名令牌,因为我的 Lumen 应用程序的端点应该像这样受到保护:

网页.php:

$router->group(['prefix' => '/api/v1', 'middleware' => 'auth:api'], function() use ($router) {
    $router->get('/someEndpoint', 'SomeController@index');
});

刚开始我只有一个客户端时,我很难通过这个中间件,因为我总是得到一个“未经身份验证”。然后我尝试为我的 Lumen 应用程序提供与我的客户相同的私钥 + 公钥。这行得通,我通过了我的 Api 守卫,可以读取我的数据。

我的下一个方法是添加另一个客户端。我试图为我的客户 2 提供与我的客户 1(和我的 Lumen 应用程序)相同的私钥 + 公钥。在尝试向我的 Lumen 应用程序发送请求后,client1 仍然有效,但我的 client2 出现以下异常:

密钥路径“file:///tmp/someRandomName.key”不存在或不可读

我知道在此文件中写入了私钥/公钥,并且当第二个客户端尝试调用 API 时出现问题。

  1. 问题:这种方法是“不行”还是可以为我的所有客户使用 1 个私钥?

  2. 问题:如果我的配置是“不行”,我如何告诉我的流明部分他应该使用哪个密钥来解密承载令牌?

标签: phplaravellaravel-passport

解决方案


推荐阅读