laravel 中注册登陆的方法

 

 

注册逻辑中: 密码和重复密码的验证 

 

提交注册表中有一个 password  ,一个password_confirmation 两个字段,进行提交。在进行表单 validate 中直接进行  confirmed 条件进行验证

  

表单中有这两个字段
     <label for="inputPassword" class="sr-only">密码</label> <input type="password" name="password" id="inputPassword" class="form-control" placeholder="输入密码" required> <label class="sr-only">重复密码</label> <input type="password" name="password_confirmation" class="form-control" placeholder="重复输入密码" required>

 

用将请求用request() 接受传来的参数并进行验证

        $this->validate(request(),[
            'name'=>'required|min:3|unique:frontauths,name',
            'email'=>'required|email|unique:frontauths,email',
            'password'=>'required|min:5|confirmed'
        ]);

 

 

注册的基本步骤:

  1.   迁移表
  2.   model
  3.   通过表单将数据提交
  4.   控制器中进行 数据验证 逻辑实现C  create  页面渲染或跳转

 

//register page
Route::get('/register','FrontAuth\RegisterController@registerPage');
//register method
Route::post('/register','FrontAuth\RegisterController@register');

 

用户祖册的代码实现:

    public function loginPage()
    {
        return view('frontauth/login');
    } 

    public function login()
    {
        //验证
        $this->validate( request(),[
            'email'=>'required|email',
            'password'=>'required'
        ]);

        //logic
        $user = request(['email','password']);
        $is_remember = boolval(request('is_remember'));

            // dd(request()->all());
        if( \Auth::attempt($user,$is_remember))
        {
            return redirect('/article_list');
        }
        //print
        return \Redirect::back()->withErrors("login failed check your name and password");
    }

 

blade 模板  login.blade.php

<div class="container">

    <form class="form-signin" method="POST" action="/register">

    {{csrf_field()}}        
    <!-- <input type="hidden" name="_token" value="MESUY3topeHgvFqsy9EcM916UWQq6khiGHM91wHy"> -->
        <h2 class="form-signin-heading">请注册</h2>
        <label for="name" class="sr-only">名字</label>
        <input type="text" name="name" id="name" class="form-control" placeholder="名字" required autofocus>
        <label for="inputEmail" class="sr-only">邮箱</label>
        <input type="email" name="email" id="inputEmail" class="form-control" placeholder="邮箱" required autofocus>
        <label for="inputPassword" class="sr-only">密码</label>
        <input type="password" name="password" id="inputPassword" class="form-control" placeholder="输入密码" required>
        <label class="sr-only">重复密码</label>
        <input type="password" name="password_confirmation" class="form-control" placeholder="重复输入密码" required>

                <button class="btn btn-lg btn-primary btn-block" type="submit">注册</button>
    </form>

 

 

 

登陆实现的基本步骤:

 

  1.    使用系统自带的model  ----  User.php
  2.    展示提交登陆的页面
  3.    对接收的数据进行验证
  4.    登陆逻辑实现 -   \Auth::attmpt($user , $is_remember );
  5.    登陆成功值后 redierect()

 

//login page
Route::get( '/login','FrontAuth\LoginController@loginPage')->name('login');
//login method
Route::post('/login','FrontAuth\LoginController@login');

 

blade 模板  login.blade.php

<div class="container">

    <form class="form-signin" method="POST" action="/login">
        {{csrf_field()}}
        <h2 class="form-signin-heading">请登录</h2>
        <label for="inputEmail" class="sr-only">邮箱</label>
        <input type="email" name="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
        <label for="inputPassword" class="sr-only">密码</label>
        <input type="password" name="password" id="inputPassword" class="form-control" placeholder="Password" required>
        <div class="checkbox">
            <label>
                <input type="checkbox" value="1" name="is_remember"> 记住我
            </label>
        </div>
                <button class="btn btn-lg btn-primary btn-block" type="submit">登陆</button>
        <a href="/register" class="btn btn-lg btn-primary btn-block" type="submit">去注册>></a>
    </form>

 

 

    public function loginPage()
    {
        return view('frontauth/login');
    } 

    public function login()
    {
        //验证
        $this->validate( request(),[
            'email'=>'required|email',
            'password'=>'required'
        ]);

        //logic
        $user = request(['email','password']);
        $is_remember = boolval(request('is_remember'));

            // dd(request()->all());
        if( \Auth::attempt($user,$is_remember))
        {
            return redirect('/article_list');
        }
        //print
        return \Redirect::back()->withErrors("login failed check your name and password");
    }

 

posted @ 2017-08-21 16:08  silvercell  阅读(1503)  评论(0)    收藏  举报