私はクライアントである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);
}
私はグズルを見ました。しかし、私はドキュメントや説明が受け入れられないと感じています - 私はphpとlaravelにとっては普通だと感じるものです。私がそれをうまく動作させることができれば、それは私にとってはブラックボックスとして機能し、本当に何が起こっているのか本当に分かりません。 –
私はあなたに良い例を挙げます。 guzzle readMeには、ユーザ名とパスワードを要求するconfig変数があります。通常、OAuth2では、ユーザーはホストのログインにルーティングされ、クライアントはその名前とパスワードを認識しません。それで、なぜここにいるのですか? 権限コードと、ユーザーにホストへのログイン、認可コードの取得、トークンの取得、その他の処理のプロセスについての説明もありません。 readMeは、ユーザーがトークンだけを必要とするかのように開始します。 –
Readmeの後半に、これらのオブジェクトを使用してトークンを取得して保存できることを説明します – Dymen1