【问题标题】:Laravel API Auth with Passport and ReactLaravel API Auth 与 Passport 和 React
【发布时间】:2018-07-16 16:18:31
【问题描述】:

我有一个使用开箱即用基于会话的身份验证的 Laravel 5.5 应用程序。在其中一些页面上,我有需要从/向 API 获取/发布数据的反应组件。

处理此问题的最佳做法是什么?我是否只是将 API 端点隐藏在身份验证后面?这可行,但我应该为此使用 Laravel Passport 吗?

我玩过 Passport,它似乎可行,但我不需要用户能够创建客户端并授予 3rd 方应用程序权限等。只有第一方反应应用程序消耗数据从 laravel 应用程序内部(视图)。

从我最初的试验来看,我似乎需要先进行登录调用以接收访问令牌,然后再进行进一步的调用。由于用户已经在会话中通过身份验证,有没有更简单的方法?

我不确定 Passport 是否打算用于此目的。我宁愿花时间立即获得它,因为如果应用程序可扩展,我想立即获得基础。

【问题讨论】:

    标签: laravel reactjs laravel-passport


    【解决方案1】:

    您可以使用 Passport 代理身份验证。使用密码授权类型的用户仍然会使用他们的用户名/密码登录,然后在后台向 Passport 发出内部请求以获取访问令牌。

    通过传入限制在服务提供者中注册时可以使用哪些路由:

    Passport::routes(function ($router) {
        $router->forAccessTokens();
        $router->forTransientTokens();
    });
    

    这限制了对个人令牌和刷新令牌的访问。运行php artisan passport:install时会创建一个客户端。

    设置一个中间件以将密码授予客户端 ID 和机密与请求合并,然后调用授权端点。然后只需返回加密令牌并观察授权标头以获取对您的 api 的请求。

    【讨论】:

      猜你喜欢
      • 2019-05-28
      • 2021-04-30
      • 2018-12-05
      • 2019-02-08
      • 2020-07-25
      • 2016-11-27
      • 2020-08-02
      • 2018-08-05
      • 2018-03-28
      相关资源
      最近更新 更多