danjme/bridgevb
Laravel 4 和 vBulletin 4 集成认证服务。
Requires
- php: >=5.3.0
- illuminate/support: 4.0.x
This package is not auto-updated.
Last update: 2024-09-28 13:35:37 UTC
README
这是一个 Laravel Composer 包,提供了一种方法来验证对 vBulletin 4.x 数据库的访问,以便在没有要求用户创建新账户的情况下,构建与 vBulletin 论坛并存的 Laravel 4 网站。
此包基于 pperon/vbauth 包和 CodeIgnitor 的 vb_auth 包。
在 composer.json 中添加 eld/bridgevb
作为依赖项
{ "require": { "eld/bridgevb": "1.*" } }
运行 composer update
以更新您的包或如果您尚未运行该命令,则运行 composer install
为了使用此包,将以下行添加到 app/config/app.php 文件中包含的 providers 数组
'providers' => array( ... ... 'Eld\Bridgevb\BridgevbServiceProvider', ),
为了使用外观,将以下内容添加到 app/config/app.php 文件中的 aliases 数组
'aliases' => array( ... ... 'Bridgevb' => 'Eld\Bridgevb\Facades\BridgeVb', ),
配置文件
默认配置文件位于 vender/eld/bridgevb/src/config/config.php
,但您应使用 app/config/packages/eld/bridgevb/config.php
文件来覆盖它。
配置文件看起来像
array( 'connection' => 'mysql', 'cookie_hash' => 'AdflkjEr90234asdlkj1349SDFkl', 'cookie_prefix' => 'bb_', 'db_prefix' => 'vb_', 'forum_path' => 'http://example.com/', 'user_groups' => array( 'Admin' => array(6), 'Moderator' => array(7), 'Super Moderator' => array(5), 'User' => array(2), 'Banned' => array(8), 'Guest' => array(3), ), 'user_columns' => array( 'userid', 'username', 'password', 'usergroupid', 'membergroupids', 'email', 'salt' ), );
您需要替换现有配置文件或 app/config/packages/eld/bridgevb/config.php
文件中的以下字段以适应您的设置:connection
、cookie_hash
、cookie_prefix
、db_prefix
、db_prefix
、forum_path
。在 user_groups
部分添加您的论坛用户组,并通过 user_columns
选项自定义您希望检索的用户信息。
示例用法
以下是在 app/filters.php
中如果您要在用户每次加载页面时进行身份验证的过滤器示例。
Route::filter('vbauth', function() { if (!Bridgevb::isLoggedIn()) return Redirect::to('login'); });
如果您想从 vBulletin 网站外部登录用户,以下是一个代码片段示例。
Route::post('/login', function() { $creds = array( 'username' => Input::get('username'), 'password' => Input::get('password'), 'remember_me' => Input::get('remember_me', false), ); if (Bridgevb::attempt($creds)) return Redirect::to('/'); else return Redirect::to('/login'); });
以下是在库中包含的函数:
每个方法的描述中都包含了使用示例。
is()
is() 函数接受一个字符串参数,并返回用户是否是该用户组成员。
Route::get('/isgroup', function() { return (Bridgevb::is('Banned') ? 'You are banned' : 'You are not banned'); });
attempt()
attempt 方法接受一个凭证数组,如果认证尝试成功则返回 true,如果凭证不正确则返回 false。
Route::post('/login', function() { $creds = array( 'username' => Input::get('username'), 'password' => Input::get('password'), 'remember_me' => Input::get('remember_me', false), ); if (Bridgevb::attempt($creds)) return Redirect::to('/'); else return Redirect::to('/login'); });
isLoggedIn()
isLoggedIn() 函数检查当前用户是否已认证,如果用户当前已认证则返回非零值。
Route::get('/login', function() { if(Bridgevb::isLoggedIn()) return Redirect::to('/'); return View::make('login'); });
getUserInfo()
getUserInfo() 函数返回一个表示从配置文件中指定的 vBulletin 用户表中检索的用户数据的 stdClass 对象。
$user = Bridgevb::getUserInfo(); echo 'Hello, ' . $user->username;
get()
get 方法接受一个字符串并返回传入的用户特定信息。
$username = Bridgevb::get('username'); echo 'Hello, ' . $username;
getLogoutHash()
此函数返回用户的登出哈希,允许您使用正确的登出哈希链接到 vBulletin 的登出函数。
return '<a href="http://www.example.com/login.php?do=logout&logouthash=' . Bridgevb::getLogoutHash() . '">Logout</a>';
logout()
手动将用户注销,而不是通过 vBulletin 的登出函数进行路由。
Bridgevb::logout();
变更日志
2013 年 6 月 1 日 (v1.0) - 首次发布
2013 年 6 月 2 日 (v1.0.1) - 修订代码以符合 PSR-2 标准
2013 年 6 月 3 日 (v1.1) - 修复了在会话认证时导致数据库添加多行的错误
2013 年 6 月 3 日 (v1.1.1) - 修复了会话创建错误