日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 模拟 cas,PHP discuz3.2 cas

發布時間:2023/12/20 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 模拟 cas,PHP discuz3.2 cas 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先將CAS PHP版支持包引入,然后進入下面環節。下載地址http://developer.jasig.org/cas-clients/php/1.3.4/CAS-1.3.4.tgz 1.去除登錄輸入

upload\template\default\member\login-simple.html

刪除8-29行代碼,刪除31-32行代碼

2.去除彈框登錄

upload/admin.php-=》界面-》去掉浮動窗口(登錄)

3.在CAS文件夾中創建CasClientConfig.php

define ( 'CAS_SERVER_HOSTNAME', '192.168.32.7' );

define ( 'CAS_SERVER_PORT', 8080 );

define ( 'CAS_SERVER_APP_NAME', "cas_server" );

?>

4.在CAS文件中創建CasClient.php

require_once DISCUZ_ROOT.'./CAS/CasClientConfig.php'; // 注意

require_once DISCUZ_ROOT.'./CAS.php'; // 注意

// 初始化

//phpCAS::setDebug ();

// initialize phpCAS

phpCAS::client ( CAS_VERSION_2_0, CAS_SERVER_HOSTNAME, CAS_SERVER_PORT, CAS_SERVER_APP_NAME );

// no SSL validation for the CAS server

phpCAS::setNoCasServerValidation ();

?>

5.source/class/class_core.php第16行加入

require_once DISCUZ_ROOT."Cas/CasClient.php";

6.uc_client/control/user.php

134行注釋

//elseif($user['password'] != md5($passwordmd5.$user['salt'])) {

//$status = -2;

//} elseif($checkques && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {

//$status = -3;

//}

注釋 onsynlogin、onsynlogout、onregister方法

7.source/function/member.php加入

// 新加的方法,用以支持CAS 登錄

function userloginCas($username, $ip = '') {

$return = array ();

if(!function_exists('uc_user_login')) {

loaducenter();

}

$return['ucresult'] = uc_user_login(addslashes($username), '', 0, 0,'', '', $ip);

$tmp = array ();

$duplicate = '';

list ( $tmp ['uid'], $tmp ['username'], $tmp ['password'], $tmp ['email'], $duplicate ) = $return ['ucresult'];

$return ['ucresult'] = $tmp;

if ($duplicate && $return ['ucresult'] ['uid'] > 0 || $return ['ucresult'] ['uid'] <= 0) {

$return ['status'] = 0;

return $return;

}

$member = getuserbyuid ( $return ['ucresult'] ['uid'], 1 );

if (! $member || empty ( $member ['uid'] )) {

$return ['status'] = - 1;

return $return;

}

$return ['member'] = $member;

$return ['status'] = 1;

if ($member ['_inarchive']) {

C::t ( 'common_member_archive' )->move_to_master ( $member ['uid'] );

}

if ($member ['email'] != $return ['ucresult'] ['email']) {

C::t ( 'common_member' )->update ( $return ['ucresult'] ['uid'], array (

'email' => $return ['ucresult'] ['email']

) );

}

return $return;

}

8.source/class/class_member.php

51行注釋并改為

//if(!submitcheck('loginsubmit', 1, $seccodestatus)) {

if (1 == 2) {

92行 $_G['username'] = $_G['member']['username'] = $_G['member']['password'] = '';后加入

phpCAS::setNoClearTicketsFromUrl ();

//這里會檢測服務器端的退出的通知,就能實現php和其他語言平臺間同步登出了

phpCAS::handleLogoutRequests();

$username='';

if(phpCAS::isAuthenticated()){

$username = phpCAS::getUser ();

} else {

phpCAS::forceAuthentication ();

}

//if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password'])) {

//showmessage('profile_passwd_illegal');

//}

//$result = userlogin($_GET['username'], $_GET['password'], $_GET['questionid'], $_GET['answer'], $this->setting['autoidselect'] ? 'auto' : $_GET['loginfield'], $_G['clientip']);

$result = userloginCas($username, $_G['clientip']);

347行 on_logout方法

if(defined('IN_MOBILE')) {

showmessage('location_logout_succeed_mobile', dreferer(), array('formhash' => FORMHASH, 'referer' => rawurlencode(dreferer())));

} else {

$service = ?dreferer () ?;

phpCAS::logoutWithRedirectService ( $service );

//showmessage('logout_succeed', dreferer(), array('formhash' => FORMHASH, 'ucsynlogout' => $ucsynlogout, 'referer' => rawurlencode(dreferer())));

}

386行 on_register方法中

if(strpos($url_forward, $this->setting['regname']) !== false) {

$url_forward = 'forum.php';

}

修改掉防止當登錄成功時無限跳轉

$url_forward = 'forum.php';

去除https CAS\Client.php

$this->_server['base_url'] = 'https://' . $this->_getServerHostname();

改為

$this->_server['base_url'] = 'http://' . $this->_getServerHostname();

關閉gateway CAS\Client.php

$this->redirectToCas(true/* gateway */);

改為

$this->redirectToCas(false/* gateway */);

待續(缺少PHP監聽CAS cookie中的賬號phpCAS:checkAuthentication() 不存在就清理session完畢)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的php 模拟 cas,PHP discuz3.2 cas的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。