Yahoo連携!SDKを使わずにOAuth2でアクセストークン取得する/PHP


yahoo_auth2_01

Yahoo!IDを使った会員登録やログインを実装したので備忘録!認証方式にOAuth2が使われていたので、仕組みは 「SNS連携やってみた!OAuth2の処理の流れまとめてみる」にまとめてます。PHPはSDKが準備されているのですが、今回はSDKを使わずにPHPでアクセストークを取得する処理をまとめてみます。

参考にしたのは、「Yahoo! ID連携:SDKを利用しない場合 - Yahoo!デベロッパーネットワーク」です。すごく丁寧にわかりやすく説明されています。

完成サンプル:GitHub

事前準備

yahoo_auth2_02

例としてYahoo!IDを使った会員ログインを考えます。少しでも手間を楽にしたら会員登録してくれる人も多くなるはずと、最近ではSNSを使ったログインが多くなりました。Yahoo!がSNSか?というとちょっと違う気もしますが、OAuth2にを使った仕組みは同じです。Yahoo!は様々なAPIを提供しているので連携すると結構便利なことが多いと思います。

クライアント(サイト制作者)はYahoo!(サービスプロバイダー)を使ったログインをするため、Yahoo!に使わせてくださいと登録します。そこで使う権限などを登録してAPIを利用するためのIDなどを発行してもらいます。なのでまずは、Yahoo!との手続きが必要になります。

yahoo_auth2_03

Yahoo!との手続きは、「Yahoo!デベロッパーネットワーク」で行います。サイトにアクセスして「新しいアプリケーションを開発」をクリックします。または、直接「アプリケーション登録ページ」にアクセスします。
※参考:Yahoo! ID連携:アプリケーションIDを登録する - Yahoo!デベロッパーネットワーク

yahoo_auth2_04

「アプリケーション情報の入力」画面です。

  • Web APIを利用する場所
    今回は、Oauth2を使った認証でサーバー上の処理をするので、アプリケーションの種類は「サーバーサイド」にしました。
  • アプリケーションの基本情報
    Yahoo!情報から補完できるところは補完されています。あとは、アプリケーション名やアプリケーションの説明などを入力していきます。
    利用するスコープですが、今回はここでの設定はありません。Yahoo!IDを使ったログイン機能ではユーザー認可リクエストAPIのパラメータとしてスコープを指定します。Yahoo!側でも以下のようにコメントが書かれています。

    ※UserInfoAPIのスコープ(openid、profileなど)はここでは指定せず、ユーザー認可リクエストの中で指定します。

ガイドラインに同意し、「確認」ボタンをクリックすると確認画面が表示されます。そこで「登録」ボタンをクリックすると登録完了です。
yahoo_oauth2_05

APIで利用する「アプリケーションID」と「シークレット」が発行されました。
yahoo_oauth2_07

ダッシュボードに戻り、登録したアプリの「編集」ボタンをクリックします。

yahoo_oauth2_08

コールバックURLには「利用者同意画面から戻ってくることのできるURL」を入力します。アクセストークンを取得する処理の流れに、Yahoo!サイトからアプリを使うサイトにリダイレクトさせる処理があるのですが、リダイレクト先として設定したURLと登録したURLが一致しないとエラーになります。
「更新」ボタンで更新します。

以上で最低限の設定は終わりです。
次のページでは「Yahoo!ログインボタン(リンク)の設置」をみていきます。


コメントを残す

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