前言

在go-zero 文档中有句话我觉得不错: 工具大于约定和文档 。laravel提供了很多优雅的工具,比如artisan 门面,队列,对于开发者来说很友好。

auth在小型项目中使用Passport就大材小用了。Laravel Passport 自定义添加Client

这篇文章主要介绍了简单的token验证。

开 始

添加用户表 api_token (或者自定义,后面说)

php artisan make:migration alter_users_add_api_token

    public function up(){Schema::table('users', function (Blueprint $table) {$table->string('api_token',200)->comment('登录token');});}

php artisan migrate

users表中添加了api_token 创建一条数据 api_token 为 :s8df78a7d8f7as78d

在路由中添加一个访问路径

Routephp:group(['middleware' => ['auth.api']], function () {Route::get('/getUser', function () {var_dump( Auth::user()->name);exit;});
});

这时访问,会报:

说明我们这个auth.api 的这个中间件不存在,需要我们创建一个

php artisan make:middleware WebToken

创建一个中间件WebToken

namespace App\Http\Middleware;use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;class WebToken
{/*** Handle an incoming request.** @param  \Illuminate\Http\Request  $request* @param  \Closure  $next* @return mixed*/public function handle(Request $request, Closure $next){if (Auth::guard('api')->guest()) {return response()->json(['code' => 401,'msg' => 'token错误或为空']);}return $next($request);}
}

Kernel.php 中添加中间件:

这时访问/api/getUser

提示token错误或为空 ,这时因为我们没有传入token

再尝试访问: /api/getUser?api_token=s8df78a7d8f7as78d

可以看到我们在路由那边打印的 Auth::user()->name 是报错的,但是其实它是验证通过的。

到了这,可能很多同学会说,这个假教程,怎么获取不到name,取关了取关了!!!!

下面一一解释:

这边主要讲 defaults guards providers 三个参数的作用。

    'guards' => ['web' => ['driver' => 'session','provider' => 'users',],'api' => ['driver' => 'token','provider' => 'users','hash' => false,],'菊花园守卫者' => ['driver' => 'token','provider' => '菊花园提供者']],

guards 熟称守卫队,也可以把它想象成保卫程序的一群守卫员,

开个玩笑:你可以想象成有一个守卫需要保护菊花园,所以我们认为他是一个菊花园守卫者,那他要守卫的对象又是谁呢?(有画面了吗?)

providers 装菊花提供者,里面可以配置对应的数据库,很多业务场景中,(举个

Laravel使用token验证登录相关推荐

  1. 使用token验证登录信息,把token存到数据库中

    使用token验证登录信息,把生成的token存到数据库中,根据用户id判断是否重复登录,重复登录就重置到期时间 调用登录接口返回出token和uuid信息 每次访问都需要在Headers里面添加该数 ...

  2. html登录状态验证,Token验证登录状态的简单实现

    设计思路 用户发出登录请求,带着用户名和密码到服务器经行验证,服务器验证成功就在后台生成一个token返回给客户端 客户端将token存储到cookie中,服务端将token存储到redis中,可以设 ...

  3. springboot+vue项目使用jwt token验证登录,token验证失败

    boolean result= JwtUtil.verify(token.substring(1,token.length()-1)); 验证token,可能携带了开头和结尾的双引号,只要像上面的截取 ...

  4. vue项目使用jwt token验证登录 报错token无效验证失败 【已解决】

    检查了所有代码都没有问题,在所有需要token的地方都能拿到正确的token,但是在verify时仍然走的err,打印出的错误为 invalid token 最后在外网查到有人在获取token时使用了 ...

  5. laravel auth.php,Laravel 自带的Auth验证登录方法

    在laravel有自带的登录验证.只要建立对应的表和配置一些文件就能够使用,无需开发者自己去实现登录逻辑. 第一步:配置方面 在config下的auth.php配置guards 和 providers ...

  6. VUE+SpringBoot+JWT实现token验证,SSO单点登录

    Session的产生: 在说session是啥之前,我们先来说说为什么会出现session会话,它出现的机理是什么?我们知道,我们用浏览器打开一个网页,用到的是HTTP协议,htpp协议是无状态的,什 ...

  7. vue 用户名重复验证_Vue项目中实现用户登录及token验证

    在前后端完全分离的情况下,Vue项目中实现token验证大致思路如下: 1.第一次登录的时候,前端调后端的登陆接口,发送用户名和密码 2.后端收到请求,验证用户名和密码,验证成功,就给前端返回一个to ...

  8. vue项目登录及token验证 vue-ant

    在前后端完全分离的情况下,Vue项目中实现token验证大致思路如下: 1.第一次登录的时候,前端调后端的登陆接口,发送用户名和密码 2.后端收到请求,验证用户名和密码,验证成功,就给前端返回一个to ...

  9. wegame每次登陆都要滑动验证_Vue项目中实现用户登录及token验证

    在前后端完全分离的情况下,Vue项目中实现token验证大致思路如下: 1.第一次登录的时候,前端调后端的登陆接口,发送用户名和密码 2.后端收到请求,验证用户名和密码,验证成功,就给前端返回一个to ...

最新文章

  1. python17个常见问题_17个Python 常见错误的分析,你都遇到过哪些?
  2. 史上最权威宏基因组软件评估—人工重组宏基因组基准数据集
  3. Linux下Sed命令的用法(之替换)
  4. vim中执行shell命令小结
  5. javascript打印
  6. python_selenium之第一个自动化脚本
  7. 【转】C# 调用 C++ 数据转换
  8. redis(19)--事务
  9. android 网络开发
  10. python2处理耗时任务_RabbitMQ Go客户端教程2——任务队列/工作队列
  11. python 打包exe_将python文件打包exe独立运行程序方法详解
  12. udp linux 获取本机ip
  13. php自带excel,基于php中使用excel的简单介绍_PHP
  14. JS基础_js编写位置
  15. JQuery左右切换实现
  16. 8*8*8光立方制作
  17. Arcgis拓扑检查
  18. ALTOVA XMLSPY使用,建xml文件,构建xpath和XQuery查询,xml和json格式转换
  19. char ch= 中 什么意思java_c语言中char ch什么意思
  20. 蚁群算法及蚂蚁系统的原理(js实现版)

热门文章

  1. Sql注入的入门教程
  2. shopify 前端开发遇到的问题及解决(部分)
  3. 信息检索—布尔模型(Boolean )和向量空间模型(VSM)
  4. 为什么属性动画移动一个控件后,目标位置仍然能响应用户事件?
  5. 学生用计算机手机软件,大学生必备APP
  6. jQuery简单动画实例1--王者荣耀手风琴
  7. HTML5的popstate、pushState、replaceState如何玩转浏览器历史记录
  8. 多页面阻止浏览器回退的解决思路(popstate)
  9. 游戏服务器引擎Matchvs游戏云第三方绑定教程
  10. Centos 7开启3306端口