嗨,我正在用Larval和vue.js构建一个应用程序。此应用程序不是完全单页应用程序,而是 vue和Blade 的组合。
例如,仪表板或登录页面以及其他一些页面基于 SPA ,并且已通过vue完全实现。但是登录页面和其他页面是由 blades 创建的,其中可能使用了其中的vue组件。
在这种情况下,我的问题是关于身份验证。 laravel护照是否适合此类情况?还是应该使用jwt或其他?因为我需要在两种类型的页面(基于Vue,基于Blade)上进行身份验证。几乎在每个页面上都完成了此操作。
另一方面,我使用 laravel-permission-Spatie 控制权限和角色。护照是否可以定义角色和权限并基于它们进行控制?我的意思是显示或隐藏元素和链接,访问某些部分或进行权限检查。
您提供了哪些资源来开始学习如何在此类应用中开发身份验证和授权?
编辑:
我的问题也许有些含糊,所以我将解释更多。假设我们的网站分为三个部分:
路由也是由vue在用户个人资料和管理仪表板页面上执行的,操作由axios执行并将请求发送到以laravel编写的api。这三个部分都在相同的应用程序中。
问题是,在这种情况下应如何进行身份验证和授权? laravel-passport是否适合此任务?可以在laravel-passport中做这两种事情吗?例如,授权将在前端部分通过vue完成,应如何完成?是否可以将 laravel-passport和laravel-permission-Spatie 结合使用?还是我们根本需要它?也许是更笼统的问题:这种情况合理吗?
答案 0 :(得分:0)
您使它变得太复杂了。如果要在刀片文件中调用vue组件,则根本不需要护照,但是如果前端与后端分开,则需要使用护照,因为您无权访问会话...
另一方面,我使用laravel-permission-Spatie来控制权限和角色。护照是否可以定义角色和权限并基于它们进行控制?
Passport不在乎您要使用什么样的权限和角色系统,您可以使用任何您想要的东西
答案 1 :(得分:0)
您可以使用中间方法,刀片登录/注册和Laravel护照中间件https://laravel.com/docs/6.x/passport#consuming-your-api-with-javascript。
此Passport中间件会将laravel_token cookie附加到您的外发响应中。此cookie包含一个加密的JWT,Passport将使用该JWT来验证来自JavaScript应用程序的API请求。现在,您可以在不显式传递访问令牌的情况下向应用程序的API发出请求
Spatie权限非常适合管理权限和角色。您可以使用middleware保护api路由,也可以签入控制器。