为PHPBB加一个oauth认证方式统一登陆SSO.docVIP

为PHPBB加一个oauth认证方式统一登陆SSO.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
为PHPBB加一个oauth认证方式统一登陆SSO tag:phpbb,sso,统一登陆,oauth2,oauth 以下文章只是讲述我做这个东西的一个原理,主要实现是采用主站的认证来实现本站点的登陆,论坛采用隐式的密码认证方式;如果想要了解更多,可以联系我caijiche@;这是用于oauth的原理。发出来和大家一起分享! 操作步骤 一、将auth_oauth2.php加入论坛的includes/auth/这个目录当中,这是一个OAUTH的插件,使其支持这种认证方式 二、将caijicheOauthClient.php这个文件加入PHPBB的根目录中,这个文件是CAIJICHE的oauth客户端文件; 三、将论坛的数据库bbs_config表中的auth_method的值改成“oauth2”,说明使用oauth2认证; 四、为了使后台管理员也可以使用这种认证方式,把functions.php中的以下这段注释掉 if ($admin utf8_clean_string($username) != utf8_clean_string($user-data[username])) { // We log the attempt to use a different username... add_log(admin, LOG_ADMIN_AUTH_FAIL); trigger_error(NO_AUTH_ADMIN_USER_DIFFER); } 否则会报不匹配的错误; 五、更改注册链接: 将functions.php中的函数page_header中的数组中“U_REGISTER”的值改成“/reg” 六、更改忘记密码链接:将functions.php中的函数page_header中的数组中“? U_SEND_PASSWORD?”的值改成“/getpwd” phpbb报一些警告错误的解决办法: 将对应的函数改成静态函数 七、语言文件:登录 改成 使用采集车帐号登陆 用户名(USERNAME)改成 用户名[email] 以下是auth_oauth2.php的内容 这个文件主要还是参考auth_db.php简单改动了一下 ?php /** * Database auth plug-in for phpBB3 * * Authentication plug-ins is largely down to Sergey Kanareykin, our thanks to him. * * This is for authentication via the integrated user table * * @package login * @version $Id: auth_db.php 10431 2010-01-20 00:20:46Z bantu $ * @copyright (c) 2005 phpBB Group * @license /licenses/gpl-license.php GNU Public License * */ /** * @ignore */ if (!defined(IN_PHPBB)) { exit; } /** * Login function */ function login_oauth2($username, $password) { global $db, $config,$phpbb_root_path; ? ? include ($phpbb_root_path . caijicheOauthClient.php);//将客户端的类含进来 ? ?require_once($phpbb_root_path.common.php); ? ?require_once($phpbb_root_path.includes/functions_user.php); ? // require_once($phpbb_root_path.includes/functions_module.php); // 密码为空 if (!$password) { return array( status = LOGIN_ERROR_PASSWORD, error_msg = NO_PASSWORD_SUPPLIED, user_row = array(user_id = ANONYMOUS), ); } //用户名为空 if (!$username) { return array( status = LOGIN_ERROR_USERNAME, error_msg = LOGIN_ERROR_USERNAME, us

文档评论(0)

max + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档