勉強したことのメモ

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

  関連記事

画像をアップロードすると複数サムネイルを生成する方法

フォームで画像をアップロードすると、予め定めておいた大中小のサイズでサムネイル画 ...

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

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

PHPで配列を検索クエリ化、検索クエリを配列化

PHPで配列を検索クエリ化、検索クエリを配列化する方法のメモ。   ■ ...

ブログサービスの様にサブドメインを動的に生成する方法  

ブログサービスの様に「hoge」というログインIDを作成した際、「hoge.bl ...

PHPでファイルを添付してメール送信

PHPでファイルを添付の上、メールを送信したかった。方法を探したところphpma ...

PHPでdo-while(0)の利点

社内のソースで do { //処理内容 if ($test) { break; ...

MySQLiで直近に挿入したオートインクリメントの値と次回挿入する値を取得する方法

phpとmysqliを使っている中で次回挿入するオートインクリメントの値と、前回 ...

特定のサイトからのリクエストのみ受け付けて処理する方法

指定したサイトからのリクエストのみ受け付けて処理したいという状況があった。その他 ...

定数とグローバル宣言した配列

定数のメリットが分からず、ほとんど使ってこなかったけど 画像用のfunction ...

DTIのVPSにCodeigniterを導入する方法

DTIのVPSにPHPフレームワークのCodeigniterをインストールした。 ...