Laravel 自带的Auth验证登录方法

2025-05-27 0 57

在laravel有自带的登录验证。只要建立对应的表和配置一些文件就能够使用,无需开发者自己去实现登录逻辑。

第一步:配置方面

在config下的auth.php配置guards 和 providers 。 之后新建文件和数据库名称要和这里的对应。

  1. 'guards' => [
  2. 'web' => [
  3. 'driver' => 'session',
  4. 'provider' => 'users',
  5. ],
  6. 'api' => [
  7. 'driver' => 'token',
  8. 'provider' => 'users',
  9. ],
  10. //Laravel Auth 验证登录
  11. 'admin' => [
  12. 'driver' => 'session',
  13. 'provider' => 'admins',
  14. ]
  15. ],
  16. 'providers' => [
  17. 'users' => [
  18. 'driver' => 'eloquent',
  19. 'model' => App\\User::class,
  20. ],
  21. 'admins' => [
  22. 'driver' => 'eloquent',
  23. 'model' => App\\Admin::class,
  24. ],
  25. // 'users' => [
  26. // 'driver' => 'database',
  27. // 'table' => 'users',
  28. // ],
  29. ],

第二步:数据库方面

1 新建admins表,作为后台用户表

Laravel 自带的Auth验证登录方法

其中remember_token 用于是否记住用户

2 在app目录下新建Admin.php 文件对应,文件名称取决于配置文件中的名称

  1. <?php
  2. namespace App;
  3. use Illuminate\\Foundation\\Auth\\User as Authenticatable;
  4. class Admin extends Authenticatable
  5. {
  6. protected $fillable = [
  7. 'username', 'password',
  8. ];
  9. protected $hidden = [
  10. //remember_token 字段用于记住我的功能
  11. 'password', 'remember_token',
  12. ];
  13. public static $rules = [
  14. 'username'=>'required',
  15. 'password'=>'required'
  16. ];
  17. }

Laravel 自带的Auth验证登录方法

第三步:控制器中auth的使用

  1. Auth::guard('admin')->attempt($credentials)); 尝试登录
  2. Auth::guard($guard)->guest();判断用户是否来宾,可用于中间件,判断用户是否登录,返回false,则已经登录,反之,跳转会登录页面
  3. Auth::guard($guard)->user();获取已经登录的用户信息,注意在__construct()中无法获取,可以在中间件里面获取
  1. <?php
  2. namespace App\\Http\\Middleware;
  3. use Closure;
  4. use Illuminate\\Support\\Facades\\Auth;
  5. class AdminAuthMiddleware
  6. {
  7. /**
  8. * Handle an incoming request.
  9. *
  10. * @param \\Illuminate\\Http\\Request $request
  11. * @param \\Closure $next
  12. * @return mixed
  13. */
  14. public function handle($request, Closure $next, $guard = null)
  15. {
  16. //如果没有指定的话,默认 guard 是 web,
  17. //dump(Auth::guard($guard)->check()); 判断用户是否认证
  18. //Auth::guard($guard)->user() 获取用户信息
  19. //Auth::guard($guard)->guest() 是否是来宾
  20. if(Auth::guard($guard)->guest()){
  21. if($request->ajax() || $request->wantsJson()){
  22. return response('Unauthorized.', 401);
  23. }else{
  24. return redirect()->guest('admin/login');
  25. }
  26. }
  27. return $next($request);
  28. }
  29. }
  1. $credentials = $request->only('username', 'password');
  2. /**
  3. * 使用laravel自带的Auth登录
  4. * 1、密码使用的是hash加密 $crypt = password_hash($password, PASSWORD_DEFAULT);
  5. */
  6. if(Auth::guard('admin')->attempt($credentials)){
  7. return response()->json(['code' => 200, 'msg' => '登录成功']);
  8. }else{
  9. return response()->json(['code' => 403, 'msg' => '用户名或密码错误']);
  10. }

以上这篇Laravel 自带的Auth验证登录方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

原文链接:https://blog.csdn.net/weixin_42273669/article/details/91402612

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Laravel 自带的Auth验证登录方法 https://www.kuaiidc.com/71399.html

相关文章

发表评论
暂无评论