第三方登入 for phpbb3

網站架設,免費空間申請,架站技術交流區

ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

第三方登入 for phpbb3

文章ETERNAL » 2011-09-02 8:56 pm

今天花了些時間,修改這支外掛 facebook-authentication-for-phpbb3-t49994.html
把MSN、Google、Yahoo的登入,也加入到phpbb3內
只要你在Facebook、MSN、Google、Yahoo任一個網站有帳號的話,可以直接登入phpbb3論壇
1.png
1.png (6.9 KiB) 被瀏覽 21666 次


第一次登入時,會要求會員輸入暱稱,之後在論壇顯示該暱稱
2.png
2.png (8.5 KiB) 被瀏覽 21666 次


登入正常
3.png
3.png (5.41 KiB) 被瀏覽 21666 次


發言正常
4.png
4.png (9.65 KiB) 被瀏覽 21666 次


私人訊息正常,所有功能與正常會員相同
5.png
5.png (16.95 KiB) 被瀏覽 21666 次


可在我個人的網站,可以試用體驗一下這功能
Demo: http://www.et99.net


以下分享一下修改過程

步驟一. (若不使用facebook登入,可以跳過此步驟)
首先到facebook註冊開發者帳號,並且建立一個app
得到 App ID 及 App Secret

本文重點在於phpbb,如何申請建立app,在此不進行說明
facebook官方有很詳細教學文件
https://developers.facebook.com/

步驟二. (若不使用MSN登入,可以跳過此步驟)
首先到Windows Live註冊開發者帳號,並且建立一個app
得到 Client ID 及 Client secret

本文重點在於phpbb,如何申請建立app,在此不進行說明
Windows Live官方有很詳細教學文件
http://msdn.microsoft.com/zh-tw/windowslive

步驟三. (若不使用Google登入,可以跳過此步驟)
首先到 https://www.google.com/accounts/ManageDomains 註冊你的網址,證明你是這個網站的管理者

這邊是使用openid來取得帳號
Google官方有很詳細教學文件 http://code.google.com/intl/zh-TW/apis/ ... penID.html
有興趣的人可以研究

步驟四. (若不使用Yahoo登入,可以跳過此步驟)
先申請YDN開發者,然後在這網址 https://developer.apps.yahoo.com/manage 註冊你的網址,證明你是這個網站的管理者

這邊是使用openid來取得帳號
Yahoo官方有很詳細教學文件 http://developer.yahoo.com/openid/
有興趣的人可以研究

步驟五.
下載 tool/auth.rar
解壓縮可以得到
/auth/auth.php
/auth/function_sns.php
/styles/prosilver/template/sns_register.html

修改 auth.php 文件

$key是做為md5加密驗證用,務必修改,內容自行隨意定義
代碼: 選擇全部
$AuthUrl = 'http://你的網址/auth/auth.php';
$RealmUrl = 'http://你的網址/';
$PolicyUrl = 'http://你的網址/';
$key="請輸入自定義密鑰";


若無使用facebook登入,可跳過這兩行修改
代碼: 選擇全部
$app_id = "在facebook申請的App ID";
$app_secret = "在facebook申請的App Secret";


若無使用msn登入,可跳過這兩行修改
代碼: 選擇全部
$app_id = "在Windows Live申請的Client ID";
$app_secret = "在Windows Live申請的Client secret";


連同目錄上傳到你的論壇,把上面三個文件上傳至論壇根目錄

步驟六.
匯入這段SQL語法
代碼: 選擇全部
DROP TABLE IF EXISTS `phpbb_sns_player`;
CREATE TABLE `phpbb_sns_player` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `sns_id` varchar(100) collate utf8_unicode_ci NOT NULL default '',
  `user_id` int(11) unsigned NOT NULL default '0',
  `user_name` varchar(64) collate utf8_unicode_ci NOT NULL,
  `type` tinyint(4) unsigned NOT NULL default '0',
  `datetime` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `sns_id` (`sns_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1177 ;


步驟七.
打開 /includes/functions_user.php
find
代碼: 選擇全部
$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE);

replace
代碼: 選擇全部
$table_ary = array(USERS_TABLE, USER_GROUP_TABLE, TOPICS_WATCH_TABLE, FORUMS_WATCH_TABLE, ACL_USERS_TABLE, TOPICS_TRACK_TABLE, TOPICS_POSTED_TABLE, FORUMS_TRACK_TABLE, PROFILE_FIELDS_DATA_TABLE, MODERATOR_CACHE_TABLE, DRAFTS_TABLE, BOOKMARKS_TABLE, SESSIONS_KEYS_TABLE, PRIVMSGS_FOLDER_TABLE, PRIVMSGS_RULES_TABLE,"phpbb_sns_player");


打開 /styles/prosilver/template/overall_header.html
find
代碼: 選擇全部
<li class="icon-logout"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="x">{L_LOGIN_LOGOUT}</a></li>

after add
代碼: 選擇全部
<!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) -->
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=facebook" >Facebook登入</a> </li>
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=msn" >MSN登入</a> </li>
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=Google" >Facebook登入</a> </li>
<li class="icon-logout"><a href="http://你的論壇網址/auth/auth.php?AuthType=Yahoo" >Facebook登入</a> </li>
<!-- ENDIF -->

overall_header.html 請根據自己需求修改


水色論壇 http://www.et99.net
簡恩峻分享


ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 第三方登入 for phpbb3

文章ETERNAL » 2011-09-02 9:28 pm

facebook yahoo msn google 都有提供其他應用功能

例如取得用戶聯絡人,發塗鴉牆,取得用戶相簿,向在線用戶發訊息等等

可利用此外掛向用戶取得權限,使這些功能結合到論壇上

這些功能是雙面刃,希望使用這外掛的開發者,向用戶取得授權時,應保護用戶隱私,不要濫用

例如:
對用戶的好友發垃圾訊息 、 洗塗鴉牆 之類


水色論壇 http://www.et99.net
簡恩峻分享


K
企鵝管理員
 
文章: 1118
註冊時間: 2003-05-19 11:00 am
來自: 囧星
性別: 男生

Re: 第三方登入 for phpbb3

文章K » 2011-10-05 2:43 pm

跟現在大量個web game一樣 都有提供這些登入方式! 讚~
不過隱私也是一個傷腦筋的事... 尤其像FB那種.. 有的會瘋狂洗塗鴉牆 囧


........圖檔
圖檔

hkatalk
 
文章: 2
註冊時間: 2012-06-30 10:23 pm

Re: 第三方登入 for phpbb3

文章hkatalk » 2012-07-01 12:12 pm

ETERNAL 寫:步驟六.
匯入這段SQL語法
代碼: 選擇全部
DROP TABLE IF EXISTS `phpbb_sns_player`;
CREATE TABLE `phpbb_sns_player` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `sns_id` varchar(100) collate utf8_unicode_ci NOT NULL default '',
  `user_id` int(11) unsigned NOT NULL default '0',
  `user_name` varchar(64) collate utf8_unicode_ci NOT NULL,
  `type` tinyint(4) unsigned NOT NULL default '0',
  `datetime` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `sns_id` (`sns_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1177 ;


匯入到哪裡?




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 第三方登入 for phpbb3

文章ETERNAL » 2012-07-02 2:54 pm

hkatalk 寫:
ETERNAL 寫:步驟六.
匯入這段SQL語法
代碼: 選擇全部
DROP TABLE IF EXISTS `phpbb_sns_player`;
CREATE TABLE `phpbb_sns_player` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `sns_id` varchar(100) collate utf8_unicode_ci NOT NULL default '',
  `user_id` int(11) unsigned NOT NULL default '0',
  `user_name` varchar(64) collate utf8_unicode_ci NOT NULL,
  `type` tinyint(4) unsigned NOT NULL default '0',
  `datetime` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `sns_id` (`sns_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1177 ;


匯入到哪裡?


資料庫


水色論壇 http://www.et99.net
簡恩峻分享

varalji
 
文章: 1
註冊時間: 2013-04-08 4:19 pm
性別: 男生

Re: 第三方登入 for phpbb3

文章varalji » 2013-04-08 4:22 pm

你好
小弟測試FB登入一直卡在請註冊暱稱
輸入暱稱後又跳回輸入暱稱
請問是我的電腦有問題嗎
感謝解答




ETERNAL
 
文章: 2937
註冊時間: 2003-12-03 11:08 pm
性別: 男生

Re: 第三方登入 for phpbb3

文章ETERNAL » 2013-04-12 2:12 pm

varalji 寫:你好
小弟測試FB登入一直卡在請註冊暱稱
輸入暱稱後又跳回輸入暱稱
請問是我的電腦有問題嗎
感謝解答


是在這邊測試出現的問題嗎 ?


水色論壇 http://www.et99.net
簡恩峻分享

aozima
 
文章: 1
註冊時間: 2013-07-26 10:17 pm

Re: 第三方登入 for phpbb3

文章aozima » 2013-07-26 10:19 pm

多谢分享。



ckc
 
文章: 1
註冊時間: 2013-09-08 10:15 am

Re: 第三方登入 for phpbb3

文章ckc » 2013-09-08 10:20 am

樓主大大
我按照說明的方法設定
可是為什麼不能成功
/auth/auth.php 老是在產生一大堆新的URL code在不斷循環呢?
無法redirect到fb的授權頁
想知道哪出問題了




回到 架站討論

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客

cron