自前でOAuth2認証する時の流れメモ (随時更新)

シンプルだけど部分的に悩んだので..

GET と POST が出来ればいいので、プログラミング言語とかも考えなくていい

変数は $変数 として表記する
例 : トークンをコンソールに表示する時
println($token);
てな感じ

まず例として、以下のエンドポイントがあるとする (URLはダミー)

認証URL : https://nuko.in/oauth/authorize
トークンURL : https://nuko.in/oauth/token

あとコールバック
https://nuko.in/oauth/callback

※ 返ってきた時の $URL?code=$ここ ←が取れればいいからお好きにどうぞ
リダイレクトのURLを取れるなら楽勝ですね。
$code = replace($URL + “?code=”, “”);  みたいなことをすればいいです。

あと、一応scopeも使ってみます。 使わない時はその部分がなくてもいいと思う
scope は とりあえず read にします。

あと、認証用のクライアントIDとクライアントSecretは既に取得していることとする。
今回は適当に…

ここまでを踏まえて、これから登場するダミー変数
$認証URL -> https://nuko.in/oauth/authorize
$トークンURL -> https://nuko.in/oauth/token
$コールバックURL -> https://nuko.in/oauth/callback
$クライアントID -> ihg23iggaej21j1k
$クライアントSecret -> gjo14ng23lll
$スコープ -> read

これから出現
$コード
$アクセストークン


  • まずはアクセストークンをもらうためのトークンをもらう
  • 先ほどの、 $認証URL に対して以下のアクセスを試みる
    ・メソッド GET
    ・パラメータ
    client_id=$クライアントID
    redirect_uri=$コールバックURL
    response_type=code
    scope=$スコープ

    全部展開するとこんな感じでしょうか
    client_id=ihg23iggaej21j1k&redirect_uri=https://nuko.in/oauth/callback&response_type=code&scope=read

    さらにURLエンコードして結合します
    client_id%3dihg23iggaej21j1k%26redirect_uri%3dhttps%3a%2f%2fnuko%2ein%2foauth%2fcallback%26response_type%3dcode%26scope%3dread

    https://nuko.in/oauth/authorize?client_id=ihg23iggaej21j1k&redirect_uri=https://nuko.in/oauth/callback&response_type=code&scope=read

    ここにアクセスを行い、成功すると コード付きでリダイレクトされます
    例 https://nuko.in/oauth/callback?code=14827890

    ここから変数が
    $コード -> 14827890 になります。

  • アクセストークンを取得
  • トークンURL に対して以下のアクセスを試みる
    ・メソッド POST
    ・パラメータ
    client_id=$クライアントID
    client_secret=$クライアントSecret
    code=$コード
    grant_type=authorization_code
    redirect_uri=$コールバックURL

    展開は省略します。
    こうすると、多分アクセストークンが貰えると思います。
    $アクセストークン -> 適当

    あとは、 サイトと通信をする際のヘッダに
    Authorization: OAuth2 $アクセストークン

    とかで基本的にはいけますね。

細かい箇所はその度に更新します

Atsumi3

したいことをします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください