- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为同一域中的 Django 项目和 vBulletin 板进行单点登录 (SSO) 的最简单方法是什么?
我有一个现有的 vBulletin 用户数据库。我查看了 Django 的 RemoteUserBackend和 vBulletin 的 vBSSO但我还没有找到完整的解决方案。
最佳答案
我不了解 Django,但是当你遇到这样的事情时,搜索“bridges”。很有可能已经有人为您完成了。
这三个信息来源也可以帮助您通过做自己的桥梁:
通用桥
http://www.saurdo.com/11/11/utilizing-the-vbulletin-database-in-your-main-site
基本上您需要查看 cookie 并匹配来自 vBulletin DB 的 session 哈希以确保用户已登录,然后您可以收集所有用户信息。
引用第三个链接做 Generig Bridge:
/* Check if session exist then return user id*/
function get_session($hash){
dbconnect();
$hash = mysql_real_escape_string($hash);
$ip = implode('.', array_slice(explode('.', $_SERVER['REMOTE_ADDR']), 0, 4 - 1));
$newidhash = md5($_SERVER['HTTP_USER_AGENT'] . $ip);
$query = "SELECT * FROM session WHERE sessionhash = '".$hash."' LIMIT 1";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0){
$row = mysql_fetch_array($result);
$sessionhash = $row['sessionhash'];
$idhash = $row['idhash'];
$userid = $row['userid'];
$lastactive = $row['lastactivity'];
return ($idhash == $newidhash && (time() - $lastactive) < 900) ? $userid : false;
}
return false;
}
检查数据库中的 cookie 值:
function get_cookie($id, $pass){
dbconnect();
$id = mysql_real_escape_string($id);
$query = "SELECT * FROM user WHERE userid = ".$id." LIMIT 1";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0){
$row = mysql_fetch_array($result);
$dbpass = $row['password'];
// vb might change the salt from time to time. can be found in the /includes/functions.php file
if(md5($dbpass . '0d582e0835ec6697262764ae6cb467fb') == $pass){
return $id;
}
}
return false;
}
将其全部打包以确定用户是否已登录:
function check_login(){
if(isset($_COOKIE['bb_userid']) && isset($_COOKIE['bb_password'])){
if(get_cookie($_COOKIE['bb_userid'], $_COOKIE['bb_password'])){
return $_COOKIE['bb_userid'];
}
}
if(isset($_COOKIE['bb_sessionhash'])){
if(get_session($_COOKIE['bb_sessionhash'])){
return get_session($_COOKIE['bb_sessionhash']);
}
}
return false;
}
检索要显示的用户信息:
function user_info($id){
dbconnect();
$result = mysql_query("SELECT * FROM user WHERE userid = ".mysql_real_escape_string($id)." LIMIT 1";);
return mysql_fetch_array($result);
}
最后,在某处使用上述函数。像这样:
if($li = check_login()){
dbconnect();
$uinfo = user_info($li);
$q_lastactivity = "UPDATE user SET lastactivity = '".time()."' WHERE userid = ".$li." LIMIT 1";
mysql_query($q_lastactivity);
if((time() - $uinfo['lastactivity']) > 900){
$q_lastvisit = "UPDATE user SET lastvisit = '".$uinfo['lastactivity']."' WHERE userid = ".$li." LIMIT 1";
mysql_query($q_lastvisit); }
}
我希望它能帮助你取得一些进步。
关于Django/vBulletin 单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370005/
我使用 vbulletin 创建了一个网站,我在管理员中安装了 CMS 和 BLOG 模块,我的默认设置是论坛,但是当我们输入主页 url 时,它会将我重定向到 http://www.demo.com
我搜索了教程,但没有找到任何有用的教程。我想创建一个简单的插件,将“123”添加到论坛每个页面的标题中。 我试图去管理面板 ->创建新插件。但我不知道在标题中显示“123”需要什么钩子(Hook)。
为同一域中的 Django 项目和 vBulletin 板进行单点登录 (SSO) 的最简单方法是什么? 我有一个现有的 vBulletin 用户数据库。我查看了 Django 的 RemoteUse
我正在尝试通过论坛帮助一位 friend 设计他的 VBulletin 站点。他希望某些版 block 具有类似于网站的布局和大标题,而论坛版 block 具有更像论坛的不同风格。 有什么方法可以为
我正在尝试用 Python 编写一个程序来登录 vBulletin 论坛。 我只需要访问一个页面,但为了查看该页面,我必须登录。 这是我的代码: #-*- coding:utf-8 -*- impor
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
一整天我都在寻找这个问题的答案: 如何在不使用密码的情况下登录 vbulletin。 例如,我将请求中的用户名发送到模块并登录用户。 我发现的是: verify_authentication('use
我需要在网站的其余部分使用 vBulletin 身份验证系统。vB 有任何 API 吗? 我期待找到类似的东西: if($vBulletin->isAuthenticated()) { //
我想创建一个脚本来计算 vBulletin 论坛中线程字数。基本上,我想从 mysql 数据库中提取该数据库并使用它。我没有使用 vBulettin 的经验,所以我正在考虑两种方法: vBulleti
我们最近升级到 PHP 5.3(从 5.2)和 MySQL 5.1(从 5.0),并在 vbulletin 4 论坛上进行了数据库恢复。在这些搜索之后就完全停止工作了。 无论您搜索什么,最终都会在 /
一些垃圾邮件发送者已经破坏了我的 Vbulletin 论坛,其中包含大约 12000 个包含恶意网站链接的帖子。通过我网站上的管理工具删除这些帖子和线程需要几个小时。 我注意到所有三个线程都存储在数据
这是我在使用多个 vBulletin 数据库时一直遇到的问题。我无法编辑数据库来更改设置,例如 cookiepath、bburl 或它是否处于事件状态。我的意思是,我可以使用 PHPMyAdmin 更
我的论坛中有一个辅助脚本,允许我的用户从我的论坛上传一些东西。 我想允许我的用户从论坛上传附件文件,但 vbulletin 总是显示未注册的形式。 所以我想问有没有一种方法可以发送带有附件链接的用户名
我想在 vbulletin 的另一个页面上使用 {vb:raw human_verify} 吗? 当我在另一个模板中使用这个变量时,它不起作用。 它在某些模板(注册、搜索、..)上完美运行,但在其他模
我想获取 vBulletin 的注销哈希,以便我可以直接从我的主站点链接到注销位。 我该怎么做? (PHP) 最佳答案 注销哈希被加载到全局用户信息数组中,因此当您包含“global.php”文件时,
vBulletin 等脚本如何在没有 cron 作业的情况下启动常规维护作业?例如,vBulletin 不会实时更新线程 View 计数,并且根据其文档仅每小时更新一次。但是,他们不使用 cron 作
所以我几年前创建了这个 vBulletin 论坛,几个月前它开始时不时地通过电子邮件向我发送错误消息。由于我在创建网站时注册为论坛管理员,现在当出现错误时它会向我发送电子邮件。网站所有者和我聚在一起,
今天,我和我的同事就在我们的项目中选择数据类型进行了一些辩论。 我们是网络开发人员,我们使用 PHP 编写后端代码,对于数据库,我们使用 mySQL。 所以,我上网了一下,他们出于各种原因不推荐 EN
我正在尝试将“赞”灰色条移到签名正上方的“赞”链接左侧,右上角带有小图标。 例子: http://www.talkjesus.com/bible-study-hall/44722-antimonian
我正在尝试使用新的 vBulletin 4 制作自定义页面。 我的 PHP 文件使用以下代码: $templater = vB_Template::create('TEST'); $templater
我是一名优秀的程序员,十分优秀!