Laravel Passport并发策略

时间:2019-05-10 12:51:42

标签: laravel oauth laravel-passport

由于我缺乏理解,我可能会把事情混在一起,也许所有这些都有更好的(统一的)方法,所以我向社区开放。

在Laravel 5.8上下文中,使用Passport,我试图实现以下目标: -一个“正常”网站,用户可以登录并访问页面和表格 -网站的API。有些路线是开放的,有些路线是封闭的,有些路线都是(在某种意义上,您可以单击或不单击它们,但它们的行为有所不同) -专门针对具有特殊路线的其他客户的API -管理控制台(暂时不相关,但使用背包)

我的问题是不必同时验证网站API的应用程序和用户的身份(因此我可以在登录前使用路由,但仍然知道客户端是我的javascript接口)。

我从CreateFreshApiToken中间件开始,在用户登录时生成了一个cookie。这很好。 然后,我尝试创建一种在登录之前对我的应用程序进行身份验证的机制。我一直在使用带有CheckClientCredentials中间件的客户端凭据,并且在未对用户进行身份验证时可以正常工作。我的Vue应用程序将首先调用以获取其令牌并将其设置在任何后续请求的标头中。 现在,我正在尝试合并两种策略(或更确切地说是从一种策略切换到另一种策略)。

因此,承载令牌适用于CheckClientCredentials中间件后面的路由,但不适用于同样受auth:api中间件保护的路由(但auth是)。我的cookie仍然设置并发送,并且承载令牌也是如此。我仍然从API中获得{"message":"Unauthenticated."}。 如果我删除CheckClientCredentials中间件,它将起作用。

现在,我不确定该去哪里。我是否应该尝试覆盖登录名(不知道该在哪里,但这不是难事),以便向用户颁发令牌(这意味着我将需要使用密码)授予客户端?),然后尝试将其设置为客户端中的授权标头?这样就完全删除了cookie吗? 还是我应该尝试让它们实际上一起工作以避免这种情况发生(我想这应该在护照方面进行设置,但是我对如何做到这一点迷失了)(我想这意味着将经过身份验证的用户从Auth转移到Passport?)。

用例可能并不少见,但是很难找到试图解释这种情况的教程。

很抱歉,如果不清楚!任何帮助/线索/线索将不胜感激:)谢谢!

0 个答案:

没有答案
相关问题