Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

栏目: PHP · 发布时间: 7年前

内容简介:我们先来看

不同认证方式

我们先来看 config/auth.php

  • provider

    • providers 数组让我们可以配置一个提供者,每个提供者可以选择不同的 driver.driver可以选择eloquent 或者 database ,
    • 对应的驱动之后选择对应的配置项,eloquent:model,database:table
  • guard

    • 在拥有provider之后我们可以配置guards 守卫,守卫可以配置一个驱动者和一个提供者
    • 提供者就是我们上面配置的provider
    • 而驱动者则有session(session认正),token(token认正)可供选择
    • 默认api使用的是token认正,而web用户使用session认正

session认正

Auth::attempt(['email' => $email, 'password' => $password])
Auth::guard()->check()

token认正

\vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

  • 然后我们还要在数据库里建立相应的字段web_token

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

注:如果使用 redis 等nosql保存web_token的话也是需要web_token的,为了使 laravel 自带的Auth门面可以使用
  • 建立完字段以后就可以写登录方法了:

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

  • 在这里还是使用了redis去保存token,便于设置token的过期时间

    • 至于为什么还要保存在数据库里,在注销或者token过期的时候还要更新数据库的token,是因为Auth底层获取user的方法是从数据库进行获取的
    • 贴上源码来看一波
  • 首先还是 \vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php 文件

    • 这里插一下,如果是想把token放在header头里传值,还要在 TokenGuard.php 加入这一段

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

Auth::user()
\vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

Auth::guard('user')->user()

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

  • 当我们调用 Auth::user( ) 时会调用 \vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php 里的

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

  • 然后我们找到 retrieveByCredentials() 这个方法在 vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

Auth::user()

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

  • 把新建的middleware加入 kernel.php 中

Laravel - Auth验证流程以及guard守卫和自定义驱动driver驱动,使用web-token验证

except()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

代码大全(第2版)

代码大全(第2版)

[美] 史蒂夫·迈克康奈尔 / 金戈、汤凌、陈硕、张菲 译、裘宗燕 审校 / 电子工业出版社 / 2006-3 / 128.00元

第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初......一起来看看 《代码大全(第2版)》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具