laravel 护照授权码 - 要求授予权限,是否需要携带?

发布于 2025-01-14 11:28:43 字数 533 浏览 1 评论 0原文

我正在寻求一些关于在授权我自己的 SPA 时如何准确地进行 Oauth auth code PKCE grant 的澄清。

因此,当我从 SPA 重定向到后端时(当然是在我登录之后),我得到了这个:

在此处输入图像描述

现在我明白了,如果我想使用 google 或 twitter 登录我的应用程序,这是有意义的例子。

但是,如果我想登录后端应用程序以使用 SPA 获取令牌 - 有没有办法避免每次用户登录时出现这种情况?有道理吗?

我希望从用户的角度来看是这样的:

  • 单击登录
  • 重定向到后端,假装是 SPA(视觉上)
  • 登录,
  • 直接返回 SPA,而无需确认这些内容

,我主要想了解 SPA 的流程。我假设并怀疑我想要的根本不可能?

I am looking for some clarification as for how exactly to proceed with Oauth auth code PKCE grant when it comes to authorizing my own SPA.

So I get this when I am redirected from my SPA to backend (after I log in of course):

enter image description here

Now I get this, makes sense if I want to login into my app with google or twitter for example.

But If I want to log in to the backend app to get the token with my SPA - is there a way to avoid that every time a user logs in? Does it make sense?

I would like to have it from user perspective like this:

  • click login
  • redirect to backend pretending to be SPA (visually)
  • login
  • go straight back to SPA without having to confirm that stuff

I just mainly want to understand the process for SPA. I assume and suspect that what I want is simply not possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

余罪 2025-01-21 11:28:43

是的,您可以:)

创建您自己的 Passport 客户端。

<?php

declare(strict_types=1);

namespace App\Models;

class PassportClient extends \Laravel\Passport\Client
{
    /**
     * Determine if the client should skip the authorization prompt.
     *
     * @return bool
     */
    public function skipsAuthorization()
    {
        // todo: add some checks, e.g. $this->name === 'spa-client'
        return true;
    }
}

并更新您的App\Providers\AuthServiceProvider

public function boot()
{
    // ...

    Passport::useClientModel(PassportClient::class);
}

Yes you can :)

Create your own Passport client.

<?php

declare(strict_types=1);

namespace App\Models;

class PassportClient extends \Laravel\Passport\Client
{
    /**
     * Determine if the client should skip the authorization prompt.
     *
     * @return bool
     */
    public function skipsAuthorization()
    {
        // todo: add some checks, e.g. $this->name === 'spa-client'
        return true;
    }
}

And update your App\Providers\AuthServiceProvider.

public function boot()
{
    // ...

    Passport::useClientModel(PassportClient::class);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文