Ajax登录问题
提交登录代码#
$('#login-btn').click(function () {
let username = $('#username').val();
let password = $('#password').val();
let captcha = $('#captcha').val();
$('#refreshCaptcha').attr('src',"{{ captcha_src('admin.login') }}");
if (username == '') {
layer.msg('用户名不能为空', {icon: 2});
return false;
}
if (password == '') {
layer.msg('密码不能为空', {icon: 2});
return false;
}
if (captcha == '') {
layer.msg('验证码不能为空', {icon: 2});
return false;
}
let data = {
'username': username,
'password': password,
'captcha': captcha,
'_token': "{{ csrf_token() }}"
};
$.ajax({
url: "{{ route('admin.login') }}",
type: "POST",
data: data,
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
success: function (res) {
if (res.code === 1) {
layer.msg(res.message, {icon: 1}, {time: 2000});
setTimeout(function () {
location.href = "{{ route('admin.index') }}";
}, 3000)
}else{
layer.msg(res.message, {icon: 2}, {time: 2000});
return false;
}
},
error: function (msg) {
let json = JSON.parse(msg.responseText);
json = json.errors;
for (let item in json) {
for (let i = 0; i < json[item].length; i++) {
layer.msg(json[item][i], {icon: 2}, {time: 2000});
return false; //遇到验证错误,就退出
}
}
}
})
});
登录代码#
public function login(LoginRequest $request)
{
$username = $request->get('username');
$password = $request->get('password');
$result = auth('admin')->attempt(['username' =>$username,'password' => $password,'status'=> 1]);
if($result){
return response()->json(['message'=>'登录成功','code' => 1]);
}else{
return response()->json(['message'=>'用户名或密码错误','code' => 0]);
}
}
中间件#
<?php
namespace Modules\Admin\Http\Middleware;
use App\Http\Middleware\Authenticate;
use Closure;
use Illuminate\Http\Request;
class CheckLogin extends Authenticate
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
$login_result = auth('admin')->check();
if(!$login_result)
{
return redirect()->route('admin.login');
}
return $next($request);
}
}
中间件注册#
路由声明#
Route::prefix('admin')->group(function () {
Route::get('login', 'LoginController@loginForm')->name('admin.login');
Route::post('login', 'LoginController@login')->name('admin.login');
Route::middleware(['admin.auth'])->group(function () {
Route::get('/', 'AdminController@index')->name('admin.index');
});
});
大佬们 这个 Ajax 登录到底咋回事呢?有时候能登录成功,有时候又不能登录,莫名其妙的???
推荐文章: