将Passport用作主要auth方法时,请同时使用api / web Laravel防护

时间:2019-06-02 06:12:45

标签: laravel api web middleware

我已经有一个使用Passport的Laravel / Vue网络应用程序。我的默认防护是auth:api。另外,Vuex商店还将我的userinfo /令牌保存在localStorage中

我已经使用中间件在每条路由上实现了Spatie权限:

Route::middleware('auth:api')->group(function() {

        Route::get('/view-pdf/{id}',[
            'uses' => 'MyController@streamPdf'
        ])->middleware(['permission:view_pdf']);
)};

我的所有视图都使用vue路由器加载,所有GET / POST / PATCH请求都使用api路由通过axios完成。到目前为止,一切都很好。

现在,我需要利用网络路线来显示一些PDF。当然,缺少用户会话,因此在缺少权限时会收到未经授权的403响应。

我想知道如何做到这一点。我曾经想过通过api登录一次guard:web会话,但是我什至不了解如何面对这个问题。

有可能吗?我应该考虑用另一种方式吗?

请澄清一下,需要使用网络路由直接使用snnapyPDF从控制器中流式传输PDF。为此,我在vue组件中使用window.open('/view-pdf/486')打开一个新窗口。 不能将axios.get()与blob响应一起使用,因为我将无法更改文件名或网址。

任何帮助将不胜感激。

0 个答案:

没有答案