如何使在Laravel 5中完成注册后不再自动登录。我使用来自这里的基本身份验证。
我还没有从postRegister()中重新编码AuthController.php,只是使用了Laravel的基本代码,而没有进行任何更改。
这是我的AuthController.php
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|confirmed|min:6',
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}这是我的路线
Route::get('auth/register', ['middleware' => 'auth', 'uses' => 'Auth\AuthController@getRegister']);
Route::post('auth/register', ['middleware' => 'auth', 'uses' => 'Auth\AuthController@postRegister']);这是我的登记表
<form method="POST" action="{{ url('auth/register') }}">
{!! csrf_field() !!}
<div>
Name
<input type="text" name="name" value="{{ old('name') }}">
</div>
<div>
Email
<input type="email" name="email" value="{{ old('email') }}">
</div>
<div>
Password
<input type="password" name="password">
</div>
<div>
Confirm Password
<input type="password" name="password_confirmation">
</div>
<div>
<button type="submit">Register</button>
</div>
</form>谢谢!
发布于 2016-01-01 09:44:52
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function postRegister(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
// Commenting this line should help.
Auth::login($this->create($request->all()));
return redirect($this->redirectPath());
}这就是你要找的函数。只需根据你的意愿编辑/覆盖这篇文章。
发布于 2016-06-01 13:08:16
对于任何想要Laravel5.2解决方案来解决这个小问题的人,请将其放在AuthController.php文件中,记住在控制器顶部包含/使用请求。
app/Http/Controller/Auth/AuthController.php
use Illuminate\Http\Request;
...
/**
* Handle a registration request for the application.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function register(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$this->create($request->all());
return redirect($this->redirectPath());
} 发布于 2016-01-01 09:37:03
为什么不只是Auth::logout();在您的postRegister函数(当成功时,即验证器通过之后),然后Redirect::to();一些其他页面,也许您想要执行电子邮件验证或其他东西,才能登录。
https://stackoverflow.com/questions/34554707
复制相似问题