勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

PHPでソーシャル(SNS)ログインする方法2018

      2018/06/12

久しぶりにソーシャル(SNS)ログインを実装する機会があった。以前に対応方法を書いておいたのでそのままいけるかと思ったが、所々躓いたので2018年版として新たにメモ。尚、使用するSNSはFacebook / Twitter /  Googleとする。

 

opauthをダウンロード

以下よりダウンロードする。

https://github.com/opauth/opauth

001

ディレクトリとURLは以下と想定する。

/ドキュメントルート/user/login

http://test.com/user/login

 

ファイルの設置

example内のファイルとlibディレクトリをloginディレクトリに設置する。

 

/lib/Opauth/Strategyディレクトリ内に利用したいSNSのディレクトリを作成する。

 

各ディレクトリには以下ページからzipファイルをダウンロードしたものを解凍してアップする。

http://www.opauth.org/

 

ファイルの編集と設定

loginディレクトリのopauth.conf.phpを編集する。

  • security_saltは適当な英数字
  • Strategyは利用したいSNSのAppKey等
  • pathは今回だと'path' => '/user/login/',

loginディレクトリのindex.phpを編集する。

 

loginディレクトリのcallback.phpを編集する。

 

Noticeエラーが出たが原因が分からないので/lib/Opauth/Opauth.phpの124行目をコメントアウト。

 

Twitter設定

https://apps.twitter.com/

上記ページからログインし、「Create New App」をクリックし次の画面で各項目を入力する。

003

WebsiteとCallback URLsは今回だと「http://test.com/user/login」を入れておけばよい。

004

作成成功するとページ遷移するのでConsumer Key(API Key)の右にある「manage keys and access tokens」リンクをクリックするとAPI KeyとAPI Secretが取得できる。

005

 

006

これをopauth.conf.phpに追記する。

 

またtwitterのSettingタブ内にある下部の「Enable Callback Locking (It is recommended to enable callback locking to ensure apps cannot overwrite the callback url)」のチェックを外して「Update Settings」で上書きしておく。

loginディレクトリのindex.phpを編集する。

クリックするとTwitterのソーシャルログインができるようになっているはず。

 

Google設定

https://console.developers.google.com/apis/library

上記ページよりログインし、プロジェクトを新規作成する。

007

プロジェクト名を入れ、組織名部分はそのままで作成をクリックする。

008

ダッシュボードの選択をクリックし、先ほど作成したプロジェクトを選択する。

009

認証情報→OAuth同意画面に進み、各項目を入力する。サービス名だけで他は省略可能。

010

認証情報タブで認証情報を作成ボタンをクリック、OAuth クライアント IDを選択する。

011

アプリケーションの種類は「ウェブアプリケーション」、名前は適宜入力、承認済みのリダイレクトURIは今回の場合だと「http://test.com/user/login/google/oauth2callback」で入力し、作成する。

012

完了するとクライアントIDとクライアントシークレットが発行されるのでopauth.conf.phpに追記する。

013

 

loginディレクトリのindex.phpを編集する。

クリックするとGoogleのソーシャルログインができるようになっているはず。

 

Facebook設定

https://developers.facebook.com

上記ページよりログインし、マイアプリ→新しいアプリを追加に進む。

014

表示名を入力してアプリを作成する。

015

ダッシュボードからFacebookログインで設定をクリックする。

018

Facebookログイン→設定に進み、有効なOAuthリダイレクトURIを入れる。今回の場合だと「http://test.com/user/login/facebook/int_callback」になる。他はそのままで保存する。

019

設定→ベーシックに進みアプリドメイン、プライバシーポリシーのURL、利用規約のURL、カテゴリを選択して保存する。

017

ページ上部のステータスをオンに変更する。

020

設定→ベーシックに進みアプリIDとapp secretをopauth.conf.phpに追記する。

 

loginディレクトリのindex.phpを編集する。

クリックするとfacebookのソーシャルログインができるようになっているはず。

 - PHP

  関連記事

images
PHPで配列を値で検索、破棄

PHPの配列で特定の値が入っていれば それを破棄したいということがあった。 ・u ...

images
PHPでサイトマップを動的に生成する

WordPress等のCMSは使っておらず、自動更新するサイトがあり、そのサイト ...

msyql-image
MySQLiでINSERT文

MySQLiでINSERT文 ■ソース $mysqli = new mysqli ...

1422186794_sqliteicon
PHPとSQLiteでi-mobileのデータをグラフ化

i-mobileでクリック保証のアフィリエイトだけど数値が並んでいるだけでグラフ ...

images
PHPで数字のプラスとマイナスを反転させる

gmp_neg http://php.net/manual/ja/functio ...

images
htmlspecialcharsを通してMySQLに格納したものを元に戻して出力

MySQLにHTMLタグを入れたくない場合にhtmlspecialcharsを使 ...

images
PHPでファイルパスorフォルダパスの確認

PHPで画像とか触る際にフォルダのパス、ファイルのパスを 知りたいことがあったの ...

images
PHPで月末日を取得

PHPファイルを触っている際に日付処理時、 date('t')というものがあって ...

images
PHPで変数名を動的に変えて使う方法

変数名を動的に変えて使用したかった。 調べてみると可変変数というものがあり、希望 ...

images
PHPでxmlのpubDateを見やすい形に整形する

PHPでsimplexml_load_file関数とかを使ってデータを取得した際 ...