laravel passport JavaScript api如何使用呢?

  1. 有清楚这个api怎么使用么?

clipboard.png

阅读 4.2k
2 个回答

墙内找了很长时间都没找到,最终还是在google里找到了答案。
文档的描述不是很清楚,其实问题在于使用javascript 接入api 认证方式应该使用默认的用户认证 和 web中间件,而不是用passport提供的登录方式以及 auth:api中间件

  1. 使用laravel默认的用户认证,

    php artisan make:auth
  2. 配置文件 config/auth.php 中授权看守器 guards 的 api 的 driver 选项改为 passport(估计不改也行,没有试过,使用javascript接入api的目的是多套应用程序公用一套api,所以还是改了)

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],
  3. 将 CreateFreshApiToken 中间件添加到 web 中间件组

        protected $middlewareGroups = [
            'web' => [
                ...
                \Laravel\Passport\Http\Middleware\CreateFreshApiToken::class,
            ],
    
            'api' => [
                'throttle:60,1',
                'bindings',
            ],
        ];
  4. 访问 域名/login 登录
    图片描述
  5. 登录成功之后打开控制台发现cookie中会有laravel_token
    图片描述
  6. 请求其他接口Header中需要携带该cookie 与 X-CSRF-TOKEN,默认axios帮我做了这些,下面是postman的示例
    图片描述
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题