jam*_*ick 7 php hash mamp laravel cartalyst-sentry
我似乎无法让哨兵工作.我一直收到这个错误: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');
}
}
?>
Run Code Online (Sandbox Code Playgroud)
Dyl*_*rce 13
问题是,当您将Sentry配置为使用User.php作为模型时,它会丢失Sentry hasher.解决方案是在用户注册时设置哈希
$user->setHasher(new Cartalyst\Sentry\Hashing\NativeHasher);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1752 次 |
| 最近记录: |