【发布时间】:2017-10-22 12:49:11
【问题描述】:
因此,在我是客户端的 OAuth2 情况下,我需要获取主机发送到我的站点的授权代码。当主机发回授权码时,从 URL 中剥离代码然后发回以检索令牌和密钥的正确方法是什么?
我已尝试使用下面的代码剥离 htaccess 中的代码并将其存储为环境变量,但这并没有正确存储环境变量。
htaccess
RewriteCond %{QUERY_STRING} ^code=(.*)$
RewriteRule ^ - [E=MY_AUTH:%1]
RewriteCond %{QUERY_STRING} ^code=(.*)$
RewriteRule ^(.*) https://www.example.com/cadWithAuth? [L]
路由器
Route::get('/cadWithAuth', 'FileController@cadWithAuth')->name('files.cadWithAuth');
控制器
public function cadWithAuth( )
{
$authCode = getenv('MY_AUTH');
$authID = getenv('OAUTH_CLIENT_ID');
$authSecret = getenv('OAUTH_CLIENT_SECRET');
$client = new Client(); //GuzzleHttp\Client
$result = $client->post('https://oauth.hostsite.com/oauth/token', [
'form_params' => [
'grant_type' => 'authorization_code',
'code' => $authCode,
'client id' => $authID,
'client_secret' => $authSecret
]
]);
return response()->json($result);
}
【问题讨论】:
标签: php .htaccess oauth oauth-2.0