eld / bridgevb
Laravel 4和vBulletin 4认证服务桥接器。
Requires
- php: >=5.3.0
- illuminate/support: 4.0.x
This package is not auto-updated.
Last update: 2020-06-26 17:33:31 UTC
README
这是一个Laravel Composer包,提供了一种对vBulletin 4.x数据库进行认证的方法,允许在不要求用户创建新账户的情况下,在vBulletin论坛旁边构建Laravel 4网站。
此包基于pperon/vbauth包和vb_auth包。
在composer.json中将eld/bridgevb
添加为依赖项
{ "require": { "eld/bridgevb": "1.*" } }
运行composer update
以更新您的包或如果尚未运行,运行composer install
要使用此包,请将以下行添加到app/config/app.php文件中包含的提供者数组
'providers' => array( ... ... 'Eld\Bridgevb\BridgevbServiceProvider', ),
为了使用外观,请在app/config/app.php中的别名数组中添加以下内容
'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() 函数返回一个 stdClass 对象,表示从配置文件中指定的 vBulletin 用户表中检索到的用户数据。
$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) - 修复了会话创建的 bugs