ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] # 详解 ## 获取已认证的用户信息 可以通过 Auth facade 来访问认证的用户。 ~~~ use Illuminate\Support\Facades\Auth; // 获取当前已通过认证的用户... $user = Auth::user(); // 获取当前已通过认证的用户id... $id = Auth::id(); ~~~ ## 指定额外条件 可以加入除用户的邮箱及密码外的额外条件进行认证查找。例如,我们要确认用户是否被标示为 active: ~~~ //laravel验证密码要字段是password这点还没想到怎么改 if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) { // The user is active, not suspended, and exists. } ~~~ ## 检查用户是否登录 使用 Auth facade 的 check 方法来检查用户是否登录,如果已经登录,将会返回 true: ~~~ use Illuminate\Support\Facades\Auth; if (Auth::check()) { // 这个用户已经登录... } ~~~ # 操作 ``` Authentication 认证 Authorization 授权 ``` 我们这里不使用laravel提供给我们默认登录注册页面,我们用laravel提供的Auth门面构建登录注册 我们要使用这个,我们就要在我们的User.php模型中继承个User User.php ``` namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { protected $guarded = ['id']; } ``` 然后我们看下配置文件config/auth.php ``` 'defaults' => [ 'guard' => 'web', //守卫,默认守卫是web 'passwords' => 'users', ], 'guards' => [ 'web' => [ 'driver' => 'session', //用session存用户信息 'provider' => 'users', //提供者是users ], 'api' => [ //api组 'driver' => 'token', 'provider' => 'users', ], ], 'providers' => [ 'users' => [ 'driver' => 'eloquent', //这个users的提供者是eloquent代表laravel模型 'model' => App\Models\User::class, //是什么模型 ], //上面和下面一样的,不过一个是模型一个是数据库 // 'users' => [ // 'driver' => 'database', // 'table' => 'users', // ], ], ``` 我们可以利用 Auth facade 来访问 Laravel 的认证服务,因此需要确认在类的顶部导入 Auth facade。 ``` public function index(Request $request) { $user=$request->input('user'); $pwd=$request->input('pwd'); //我们获取到的要和数据库的字段比对 //use Illuminate\Support\Facades\Auth; if (Auth::attempt(['username' => $user, 'password' => $pwd])) { // 登录进来 return Auth::user(); //返回用户信息 } return 0; } ``` 然后我们就可以验证,用户是否登录进来了 其他的请查看手册