like life lives

技術以外のことに興味が寄りすぎな技術ブログ

facebokアカウントでのログイン実装:redirect_urlへのリダイレクト

 前回は自作サイトにfacebookの情報を使ってログインさせるために、facebookのログインページに遷移させるリンクの作り方を説明しました。

今回はこのページからログインを行ったあとの動きを書きます。
 
 

2.redirect_urlで指定したページで"code"を受け取る

 
前回作成したリンクのパラメータにredirect_urlというものがありました。
このアドレスはfacebookの認証ページでメールアドレスとパスワード入力してログインに成功したのち、リダイレクトされるURLです。
 
ユーザーから見ると
 
facebook認証ページへのリンクがあるページ
↓リンクをクリック
facebookの認証ページ
↓ログイン実行
③redirect_urlのページ
 
という順番で画面遷移が行われます。
 
さらにこのredirect_urlには、facebookの内部でcodeというパラメータ名の文字列が付加されます。このcodeは「アクセストークン」を取得するために使用します。
 
アクセストークンとは、facebook上の情報を取得するために必要な権限をひもづけた文字列です。
 
さらにさらに、facebookのどの情報にアクセスできるかは、①のリンクのパラメータに含めた、scopeという変数で指定した範囲に限られます。
pukkyuではスコープにuser_about_meとuser_questionsを指定しています。これは自分の情報と、質問機能にアクセスするためのスコープです。
 
さて、②でログインが成功し、リダイレクトの結果、
 
 
というアドレスに画面が遷移します。(実際のcodeはランダムな文字列です)
 
これはつまりユーザーが見ているブラウザからpukkyuのサーバに対し、httpリクエストが送られるということです。なのでサーバ側でパラメータのcodeを読み取ることができます。
 
そしてサーバ側でcodeを使用してアクセストークンを取得するリクエストをfacebookに対して送ります。
 
次回に続く。