You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在League/oauth2-client的授权与令牌请求中添加键值对

在League/oauth2-client中添加自定义授权&令牌请求参数

1. 授权请求(Authorization Request)

方法一:自定义Provider重写参数方法

继承官方的抽象Provider类,重写getAuthorizationParameters()方法注入自定义键值对:

use League\OAuth2\Client\Provider\AbstractProvider;

class CustomOAuthProvider extends AbstractProvider
{
    // 实现Provider必需的基础方法:getBaseAuthorizationUrl、getBaseAccessTokenUrl等
    
    protected function getAuthorizationParameters(array $options)
    {
        // 先获取默认参数
        $params = parent::getAuthorizationParameters($options);
        // 添加自定义键值对
        $params['custom_param1'] = 'your_value1';
        $params['custom_param2'] = 'your_value2';
        return $params;
    }
}

方法二:调用授权URL时直接传入参数

生成授权URL时,把自定义参数放进$options数组:

$options = [
    'scope' => ['read', 'write'],
    'custom_param1' => 'your_value1',
    'custom_param2' => 'your_value2'
];
$authorizationUrl = $provider->getAuthorizationUrl($options);

2. 令牌请求(Token Request)

令牌请求默认以application/x-www-form-urlencoded格式POST发送,不能通过GET参数传递,需重写getAccessTokenParameters()方法:

class CustomOAuthProvider extends AbstractProvider
{
    // 实现必需的基础方法
    
    protected function getAccessTokenParameters(array $options)
    {
        $params = parent::getAccessTokenParameters($options);
        // 添加自定义表单参数
        $params['custom_token_param'] = 'token_value';
        $params['another_param'] = 'another_value';
        return $params;
    }
}

内容的提问来源于stack exchange,提问作者Jaxx0rr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:53:11