Laravel ajax 用户登录模块代码
用ajax post提交数据。注意视图模板要带上@csrf
div class="phpcn-form"> @csrf <div class="phpcn-form-item" style="color: gray;"> <h2>QINYUCMS 后台管理系统</h2> </div> <hr> <div class="phpcn-form-item"> <label class="phpcn-form-lable">用户名</label> <div class="phpcn-input-block"> <input type="text" class="phpcn-input" id="username"> </div> </div> <div class="phpcn-form-item"> <label class="phpcn-form-lable">密 码</label> <div class="phpcn-input-block"> <input type="password" class="phpcn-input" id="pwd"> </div> </div> <div class="phpcn-form-item"> <label class="phpcn-form-lable">验证码</label> <div class="phpcn-input-block"> <input type="text" class="phpcn-input" id="verifycode"> </div> <img src="/admins/account/captcha" id="captcha" style="border: 1px solid #cdcdcd;cursor:pointer;" onclick="reload_captcha()"> </div> <div class="phpcn-form-item"> <div class="phpcn-input-block"> <button class="phpcn-button" onclick="dologin()">登录</button> </div> </div> </div> </div>
视图模板js ajax代码:
<script> function reload_captcha(){ $('#captcha').attr('src','/admins/account/captcha?rand='+Math.random()); } function dologin() { var username = $.trim($('#username').val()); var pwd = $.trim($('#pwd').val()); var verifycode = $.trim($('#verifycode').val()); var _token = $('input[name="_token"]').val(); if(username==''){ return layer.alert('请输入用户名',{icon:2}); } if(pwd==''){ return layer.alert('请输入密码',{icon:2}); } if(verifycode==''){ return layer.alert('请输验证码',{icon:2}); } $.post('/admins/account/dologin', {username:username,pwd:pwd,verifycode:verifycode, _token: _token}, function(res){ if(res.code>0){ reload_captcha(); return layer.alert(res.msg,{icon:2}); } layer.alert(res.msg,{icon:1}); setTimeout(function () { window.location.href = '/admins/home/index' },1000) }, 'json'); } </script>
控制器代码:
public function dologin(Request $req) { $username = $req->username; $pwd = $req->pwd; $verifycode = $req->verifycode; if($username==''){ exit(json_encode(array('code'=>1,'msg'=>'用户名不能为空'))); } if($pwd==''){ exit(json_encode(array('code'=>1,'msg'=>'密码不能为空'))); } session_start(); if($verifycode!=$_SESSION['code']){ exit(json_encode(array('code'=>1,'msg'=>'验证码错误'))); } //数据库中验证用户 $res = Auth::attempt(['username'=>$username,'password'=>$pwd,'status'=>0]); if(!$res) { exit(json_encode(array('code'=>1,'msg'=>'登录失败'))); } //更新用户登录信息 DB::table('xpcms_admin') ->where('username',$username) ->update(['login_lastip'=>$req->getClientIp(),'login_lasttime'=>time()]); exit(json_encode(array('code'=>0,'msg'=>'登录成功!'))); }
注意:使用Auth::attempt 验证,要在app/User.php 指定表名