首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5注册后不要自动登录

Laravel 5注册后不要自动登录
EN

Stack Overflow用户
提问于 2016-01-01 08:41:18
回答 7查看 1.9K关注 0票数 3

如何使在Laravel 5中完成注册后不再自动登录。我使用来自这里的基本身份验证。

我还没有从postRegister()中重新编码AuthController.php,只是使用了Laravel的基本代码,而没有进行任何更改。

这是我的AuthController.php

代码语言:javascript
复制
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']),
    ]);
}

这是我的路线

代码语言:javascript
复制
Route::get('auth/register', ['middleware' => 'auth', 'uses' => 'Auth\AuthController@getRegister']);
Route::post('auth/register', ['middleware' => 'auth', 'uses' => 'Auth\AuthController@postRegister']);

这是我的登记表

代码语言:javascript
复制
<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>

谢谢!

EN

回答 7

Stack Overflow用户

发布于 2016-01-01 09:44:52

代码语言:javascript
复制
/**
 * 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());
}

这就是你要找的函数。只需根据你的意愿编辑/覆盖这篇文章。

票数 1
EN

Stack Overflow用户

发布于 2016-06-01 13:08:16

对于任何想要Laravel5.2解决方案来解决这个小问题的人,请将其放在AuthController.php文件中,记住在控制器顶部包含/使用请求。

app/Http/Controller/Auth/AuthController.php

代码语言:javascript
复制
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());
} 
票数 1
EN

Stack Overflow用户

发布于 2016-01-01 09:37:03

为什么不只是Auth::logout();在您的postRegister函数(当成功时,即验证器通过之后),然后Redirect::to();一些其他页面,也许您想要执行电子邮件验证或其他东西,才能登录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34554707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档