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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |