因此,我需要獲取主機發送到我的網站的授權碼,這是我在客戶端的OAuth2情況。當主機發回授權代碼時,從URL中剝離代碼然後將其發回以獲取令牌和祕密的正確方法是什麼?在Laravel獲取OAuth2的令牌
我試過剝離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', '[email protected]')->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);
}
我欣賞評論,我確實看着gu。。但是,我發現文檔和解釋是不可接受的 - 我覺得php和laravel是正常的。如果我確實能夠實現這一目標,那麼它對我來說就像一個黑盒子,我從來不知道到底發生了什麼。 –
我會給你一個很好的例子。在垃圾readMe中,有一個配置變量需要用戶名和密碼。通常,在OAuth2中,用戶被路由到主機的登錄名,客戶端將看不到該名稱和密碼。那麼,這是爲什麼呢? 也沒有解釋授權代碼以及讓用戶登錄到主機,獲取和授權代碼,獲取令牌或其他任何東西的過程。 readMe開始,就好像用戶只需要一個令牌一樣。 –
稍後在自述文件中,他們解釋說您可以使用這些對象來檢索和存儲令牌 – Dymen1