php – 尚未为用户提供hasher
发布时间:2020-12-13 18:25:26 所属栏目:PHP教程 来源:网络整理
导读:我似乎无法让哨兵工作.我一直收到此错误:没有为用户提供哈希.有谁知道会发生什么? 我在OS X 10.9上运行MAMP. 我使用的是PHP 5.4.4 已安装并启用MCrypt. 尝试在创建新用户时散列密码时会发生此错误. 我们的项目使用laravel Sentry插件. 这是控制器: ?phpus
|
我似乎无法让哨兵工作.我一直收到此错误:没有为用户提供哈希.有谁知道会发生什么?
我在OS X 10.9上运行MAMP. <?php
use Auth,BaseController,Form,Input,Redirect,Sentry,View;
class AuthController extends BaseController {
public function register()
{
return View::make('Auth.register');
}
public function handleRegister()
{
$validator = Validator::make(Input::all(),User::$rules);
if ($validator->passes()) {
//The registration has passed,create a user
$user = new User;
$user->first_name = Input::get('first_name');
$user->last_name = Input::get('last_name');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->activated = 1;
$user->save();
//grabbing the Sentry model of the user so we can save it to the appropriate group
$sentryUser = Sentry::findUserByLogin($user->email);
if (Input::get('userType') == 'Promoter')
{
$group = 'Promoters';
}
else
{
$group = 'Agents';
}
// Find the group using the group id
$group = Sentry::findGroupByName($group);
// Assign the group to the user
$sentryUser->addGroup($group);
return Redirect::action('AuthController@login')->with('message','Thanks for registering!');
} else {
// validation has failed,display error messages
return Redirect::action('AuthController@register')->with('message','The following errors occurred')->withErrors($validator)->withInput();
}
}
/**
* Display the login page
* @return View
*/
public function login()
{
return View::make('Auth.login');
}
/**
* Login action
* @return Redirect
*/
public function handleLogin()
{
$credentials = array(
'email' => Input::get('email'),'password' => Input::get('password')
);
try
{
$user = Sentry::authenticate($credentials,false);
if ($user)
{
return Redirect::action('OfferController@offer');
}
}
catch(Exception $e)
{
return Redirect::action('AuthController@login')->withErrors(array('login' => $e->getMessage()));
}
}
/**
* Logout action
* @return Redirect
*/
public function logout()
{
Sentry::logout();
return Redirect::action('AuthController@login')->with('message','You have been logged out');
}
}
?>
问题是,当您将Sentry配置为使用User.php作为模型时,它会丢失Sentry hasher.解决方案是在用户注册时设置哈希
$user->setHasher(new CartalystSentryHashingNativeHasher); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
