laravel 使用guzzlehttp/guzzle 配置步骤

1、安装guzzlehttp/guzzle

通过 Composer 包管理器安装 guzzlehttp/guzzle

composer require guzzlehttp/guzzle

2、安装laravel/passport

通过 Composer 包管理器安装 Passport

composer require laravel/passport

3、配置config/auth.php

3、1 修改看守器
修改之前

'guards'  => [

'web'  => [

'driver'  =>  'session',

'provider'  =>  'users',

],

'api'  => [

'driver'  =>  'token',

'provider'  =>  'users',

'hash'  =>  false,

],

],

修改之后

'guards'  => [

'web'  => [

'driver'  =>  'session',

'provider'  =>  'users',

],

'api'  => [

'driver'  =>  'passport',

'provider'  =>  'users',

'hash'  =>  false,

],

],

3、2 添加app\Providers\AuthServiceProvider
修改之前

public  function  boot()

{

$this->registerPolicies();
}

修改之后

public  function  boot()

{

$this->registerPolicies();

//passport 注册发出访问令牌并撤销访问令牌、客户端和个人访问令牌所必需的路由

Passport::routes();

//令牌有效期

Passport::tokensExpireIn(now()->addDays(15));

//刷新令牌的令牌有效期

Passport::refreshTokensExpireIn(now()->addDays(30));

//个人令牌有效期

Passport::personalAccessTokensExpireIn(now()->addMonths(6));

}

3、3 模型配置

use  Illuminate\Database\Eloquent\Factories\HasFactory;

use  Laravel\Passport\HasApiTokens;

use  Modules\Common\Entities\Authenticatable;

use  Spatie\Permission\Traits\HasRoles;

class  User  extends  Authenticatable

{

use  HasFactory;

use  HasApiTokens;

use  HasRoles;

use  HasFactory;
}

4、安装

php artisan passport:install

生成记录存放在数据表 oauth_clients

5、oauth/token 请求

Route::get('/auth/callback', function (Request $request) {
    $http = new GuzzleHttp\Client;

    $response = $http->post('http://laravel55.dev/oauth/token', [
        'form_params' => [
            'grant_type' => 'authorization_code',
            'client_id' => '2',  // oauth_clients 的ID 
            'client_secret' => 'tBxbskNg9fJTIh0Ufk4eKdpneSkLx1H5HxGy2VTk',   // oauth_clients secret
            'redirect_uri' => 'http://laravel55.dev/auth/callback',
            'code' => $request->code,
        ],
    ]);

    return json_decode((string) $response->getBody(), true);
});

注意:password_client字段值必须是1,provider的值是看守器,必须对于 config/auth.php 文件guards =》【web=》provider】的值

'guards' => [
    'web' => [
        'provider' => 'users',
    ],

    'api' => [
        'provider' => 'users',
    ],
],

passport:client命令

创建客户端最简单的方式就是使用 Artisan 命令 passport:client,该命令可用于创建你自己的客户端以方便测试 OAuth2 功能。当你运行 client 命令时,Passport 会提示你输入更多关于客户端的信息,并且为你生成 client ID 和 secret

php artisan passport:client

laravel 使用guzzlehttp/guzzle 配置步骤

laravel 使用guzzlehttp/guzzle 配置步骤

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

laravel中http请求就是基于guzzle 可以直接使用. 详见HTTP 客户端《Laravel 8 中文文档》

2年前 评论
游离不2

哈哈,这就是没看手册的结果

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!