配置默认队列驱动为Redis
队列配置文件是config/queue.php
:
1 | return [ |
配置文件第一个配置项default
用于指定默认的队列驱动,修改.env
中的QUEUE_DRIVER
即可。
通过API的方式进行用户注册和用户认证
Laravel中花了很大的篇幅讲用户认证,但是这种认证方式是基于MVC方式注册登录的用户,而我现在的项目都是完全的前后端分离,前端使用VUE框架,通过axios进行数据交互,laravel只作为后端接口使用,所以自带的用户认证的方式并不适用这一场景。不过在最新的laravel7中给出了最佳方案————Sanctum 轻量级 API 认证,使用起来也特别简单:
1 | $user = User::create([ |
客户端会在响应里接收到$token->plainTextToken
返回的结果,把这个结果放在以后每次请求的header中:header[authorization] = "Bearer 080042cad6356ad5dc0a720c18b53b8e53d4c274"
。
下次请求的时候,只要这样既可获取到用户的信息:
1 | Route::middleware('auth:sanctum')->get('/get_user', function (Request $request) { |
获取到的结果:
1 | { |
Sanctum生成的token是固定的,在个别项目中,可能为了反爬需要,前端的token是可变的,比如前端
authorization = md5(后端计算出的token+'abc'+随机数)
,然后把authorization、token和随机数一起在header中发送到后端进行验证,这种需求使用Sanctum好像无法直接实现。不过可以变通一下,header[authorization2] = md5(后端计算出的token+'abc'+随机数)
,然后在后端路由中自定义一个中间件进行验证。
对于多用户认证,比如系统里还有管理员用户,需要先创建admins表。
然后新增管理员:
1 | $admin = Admin::create([ //注意此处是Admin::create |
获取管理员信息的代码不变:
1 | Route::middleware('auth:sanctum')->get('/get_admin', function (Request $request) { |