如何在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
相关产品推荐
相关产品推荐

