只能在登录的控制器获取user信息
UserController.php:
namespace App\Http\Controllers\Home;
use Illuminate\Http\Request;
class UserController extends BaseController
{
public function register()
{
return view('home.user.register');
}
public function login(Request $request)
{
$this->validate($request, [
'username' => ['required', 'string', 'max:255'],
'password' => ['required', 'string', 'min:3'],
//'captcha' => ['required', 'captcha']
],[
'captcha.required' => '验证码不能为空',
'captcha.captcha' => '请输入正确的验证码',
]);
$credentials = $request->only('username', 'password');
if (auth('member')->attempt($credentials,true)) {
//这里可以获取到用户信息
return $this->error(auth('member')->user());
//如果返回成功,html接受消息跳转到首页就获取不到信息了
return $this->success([]);
}else{
return $this->error('失败');
}
}
}
写成跳转到首页的话,在IndexController.php 里auth('member')->user()获取不到信息,check()是false;
html:
$.ajax({
url: "/home/index/login",
data: $('form[name="login"]').serialize(),
type: "post",
dataType: "json",
success: function(ret) {
if (ret.code === 200) {
document.location.href = "/"
}else {
alert('登录失败');
}
}
});
路由:
//Route::group(['middleware' => 'page-cache'], function($router) {
Route::group([], function($router) {
$router->get('/', 'IndexController@index')->name('home.index');
});
Route::get('/home/index/air', 'IndexController@air');
//用户
Route::get('/home/index/register', 'UserController@register');
Route::post('/home/index/login', 'UserController@login');
auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'jwt',
'provider' => 'member',
],
'admin' => [
'driver' => 'session',
'provider' => 'users',
],
'member' => [
'driver' => 'session',
'provider' => 'members',
],
],
/*
|--------------------------------------------------------------------------
| User Providers
|--------------------------------------------------------------------------
|
| All authentication drivers have a user provider. This defines how the
| users are actually retrieved out of your database or other storage
| mechanisms used by this application to persist your user's data.
|
| If you have multiple user tables or models you may configure multiple
| sources which represent each model / table. These sources may then
| be assigned to any extra authentication guards you have defined.
|
| Supported: "database", "eloquent"
|
*/
'providers' => [
'members' => [
'driver' => 'eloquent',
'model' => App\Models\Member::class,
],
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],