gpt4 book ai didi

php - Laravel 登录(Auth::attempt)不工作

转载 作者:可可西里 更新时间:2023-10-31 23:40:13 24 4
gpt4 key购买 nike

您好,我对 Laravel 有疑问。我无法登录。我尝试了所有在网上找到的方法。也许有人知道我在哪里犯了错误。创建新用户并发送电子邮件工作正常。登录我不知道像循环一样工作回来查看没有错误或任何消息。我在 laravel 中使用 Debug模式,但没有显示任何错误。

<?php
class AccountController extends BaseController {

//Sign in function start

public function getSignIn(){
return View::make('account.signin');
}

public function postSignIn(){
$validator = Validator::make(Input::all(),
array(
'email' => 'required|email',
'username' => 'required'
)
);

if($validator->fails()){

return Redirect::route('account-sign-in')
->withErrors($validator)
->withInput();

}else{

if($auth = Auth::attempt(array(
'email' => Input::get('email'),
'password' => Input::get('password'),
'active' => 1

), true)){
return Redirect::to('/');
}else{
return Redirect::route('account-sign-in')
->with('global', 'Email/password wrong or account not activated');
}

}

return Redirect::route('account-sign-in')
->with('global', 'There was a problem signing you in');
}

//Sign in function end




//Create new account function start

public function getCreate(){
return View::make('account.create');
}

public function postCreate(){
$validator = Validator::make(Input::all(),
array(
'email' => 'required|max:50|email|unique:users',
'username' => 'required|max:20|min:3|unique:users',
'password' => 'required|min:6',
'password_again' => 'required|same:password'
)
);


if($validator->fails()){
return Redirect::route('account-create')
->withErrors($validator)
->withInput();
}else{

$email = Input::get('email');
$username = Input::get('username');
$password = Input::get('password');

//Activation code

$code = str_random(60);

$user = User::create(array(
'email' => $email,
'username' => $username,
'password' => Hash::make($password),
'code' => $code,
'active' => 0

));

if($user){

//Send link function start

Mail::send('emails.auth.active', array(
'link' => URL::route('account-active', $code),
'username' => $username),function($message) use ($user){$message->to($user->email, $user->username)->subject('Activation your account');});

//Send link function end

return Redirect::route('home')
->with('global', 'Your account has been created! We have sent you an email with activation link');
}
}
}
public function getActivate($code){
$user = User::where('code', '=', $code)->where('active', '=', 0);

if($user->count()){
$user = $user->first();

//Update user to active state

$user->active = 1;
$user->code ='';

if($user->save()){
return Redirect::route('home')
->with('global', 'Activated! You can now sign in!');
}
}
return Redirect::route('home')
->with('global', 'We could not activate your account. Please try again later.');


}

//Create new account function end

}

?>

最佳答案

postSignIn() 验证器中,您指定 username 是必需的,从我从您的逻辑和错误消息中可以看出,您需要用户指定电子邮件和登录密码。而是尝试:

$validator = Validator::make(Input::all(),
array(
'email' => 'required|email',
'password' => 'required'
)
);

当使用 emailpassword 提交登录表单时,验证器总是失败,因为没有输入 username

关于php - Laravel 登录(Auth::attempt)不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com