Tôi dường như không thể làm việc sentry. Tôi vẫn gặp lỗi này: A hasher has not been provided for the user.
Có ai biết điều gì sẽ xảy ra không?A hasher chưa được cung cấp cho người dùng
Tôi đang chạy MAMP trên OS X 10.9. Tôi đang sử dụng php 5.4.4 MCrypt được cài đặt và kích hoạt. Lỗi này xảy ra khi cố gắng băm mật khẩu khi tạo người dùng mới. Dự án của chúng tôi sử dụng plugin ghép Sentry. Đây là bộ điều khiển:
<?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('[email protected]')->with('message', 'Thanks for registering!');
} else {
// validation has failed, display error messages
return Redirect::action('[email protected]')->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('[email protected]');
}
}
catch(\Exception $e)
{
return Redirect::action('[email protected]')->withErrors(array('login' => $e->getMessage()));
}
}
/**
* Logout action
* @return Redirect
*/
public function logout()
{
Sentry::logout();
return Redirect::action('[email protected]')->with('message','You have been logged out');
}
}
?>
thể trùng lặp của [mở rộng sử dụng mô hình Sentry2] (http://stackoverflow.com/questions/16655070/sentry2-user-model-extension) – Ifnot