我似乎无法让哨兵工作。我不断收到此错误:A hasher has not been provided for the user.
有谁知道会发生什么?
我在 OS X 10.9 上运行 MAMP。我正在使用 php 5.4.4 MCrypt 已安装并启用。在创建新用户时尝试对密码进行哈希处理时会发生此错误。我们的项目使用 laravel Sentry 插件。这是控制器:
<?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');
}
}
?>