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' ]);
注册的基本步骤:
- 迁移表
- model
- 通过表单将数据提交
- 控制器中进行 数据验证 逻辑实现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>
登陆实现的基本步骤:
- 使用系统自带的model ---- User.php
- 展示提交登陆的页面
- 对接收的数据进行验证
- 登陆逻辑实现 - \Auth::attmpt($user , $is_remember );
- 登陆成功值后 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"); }

浙公网安备 33010602011771号