勉強したことのメモ

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
ゼロ詰め(ゼロパディング)の逆はゼロサプレス

ゼロパディングしている日付のゼロの部分を排除したかった。ただ、どうやって調べたら ...

images
画像登録用のfunction

<?php /****** 画像アップロード用function 画像送付側 ...

images
PHPで指定日から曜日を割り出す

曜日ってどうやって割り出すの? となったのでメモ。 ■リファレンス http:/ ...

images
PHPでゼロパディング

予め桁数を決めておいて、桁数未満の場合は0で埋めたい場合の処理。 str_pad ...

images
画像削除用function

ファイルパス、拡張子、seq番号、画像番号を渡してあげるだけ。 拡張子部分があれ ...

images
PHPからMySQLにシリアライズしたデータを格納

アンケートフォームみたいなのがあって、 今後も定期開催し、尚且つ質問内容は増減す ...

images
PHPで画像のサイズや拡張子等、詳細情報を取得

PHPで画像のサイズや拡張子等、詳細情報を取得する際 いつもググってしまっていた ...

images
画像をURLから取得して異なるサーバーにアップロード

■やりたかった事 ・画像があるサーバーはaaaサーバー ・アップロード先はbbb ...

images
PHPでis_fileとfile_existsについて

ファイルの存在チェックを行う際に、file_exists関数を 使用していたが、 ...

1422186794_sqliteicon
PHPとSQLiteで簡易BBSの作成

PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。   &nbs ...