0

我正在使用 laravel/passport v9.4.0 和 laravel 7 在我的 Nuxt SPA 上实现身份验证。为了安全起见,我选择使用PKCE流,但由于某种原因,我只从服务器收到此响应:

{"error":"invalid_client","error_description":"Client authentication failed","message":"Client authentication failed"}

我使用以下命令创建客户端:

passport:client --name=PKCE --public --no-interaction

我可以在数据库中看到它,所以我知道我使用了正确的客户端 ID。我正在使用@nuxt/auth,我的授权网址如下所示:

http://mycompany.localhost/oauth/authorize?protocol=oauth2&response_type=code&access_type&client_id=11&redirect_uri=http%3A%2F%2Fmycompany.localhost%3A3000%2Flogin&scope=openid%20profile%20email&state=pU5qdCyPuA&code_challenge_method=S256&code_challenge=qun17_MpZibssRR672w8kVpZpaUynGdkHy3_LrGudBc

我也在使用stancl/tenancy包,因为它是一个多租户应用程序,但这不应该是一个问题,因为查询看起来都不错。根据本教程,我也尝试过不使用@nuxt/auth,但结果仍然相同。

护照和laravel 7不兼容吗?laravel 7 文档详细说明了如何将 PKCE 与护照一起使用,因此不太确定这里有什么问题。

4

1 回答 1

0

客户端中的“重定向”列不正确。因为我在前端使用 npm run dev,所以它应该是 http://localhost:3000。Passport 将其默认为我的宅基地主机名。

于 2021-01-15T12:00:30.303 回答