我已经有一个使用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响应一起使用,因为我将无法更改文件名或网址。
任何帮助将不胜感激。