内容简介:我们先来看
不同认证方式
我们先来看 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
- 然后我们还要在数据库里建立相应的字段web_token
注:如果使用 redis 等nosql保存web_token的话也是需要web_token的,为了使 laravel 自带的Auth门面可以使用
- 建立完字段以后就可以写登录方法了:
-
在这里还是使用了redis去保存token,便于设置token的过期时间
- 至于为什么还要保存在数据库里,在注销或者token过期的时候还要更新数据库的token,是因为Auth底层获取user的方法是从数据库进行获取的
- 贴上源码来看一波
-
首先还是
\vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php
文件- 这里插一下,如果是想把token放在header头里传值,还要在
TokenGuard.php
加入这一段
- 这里插一下,如果是想把token放在header头里传值,还要在
Auth::user() \vendor\laravel\framework\src\Illuminate\Auth\AuthManager.php
Auth::guard('user')->user()
- 当我们调用
Auth::user( )
时会调用\vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php
里的
- 然后我们找到
retrieveByCredentials()
这个方法在vendor\laravel\framework\src\Illuminate\Auth\EloquentUserProvider.php
Auth::user()
- 把新建的middleware加入
kernel.php
中
except()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 表单正则验证及文件上传验证功能
- 架构视角 - DDD、TDD、MDD领域驱动、测试驱动还是模型驱动?
- angular 实现同步验证器跨字段验证
- Spring Security验证流程剖析及自定义验证方法
- TensorFlow 推出数据验证函数库 TFDV,用于分析和验证
- TensorFlow 推出数据验证函数库 TFDV,用于分析和验证
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
精通Python设计模式
[荷] Sakis Kasampalis / 夏永锋 / 人民邮电出版社 / 2016-7 / 45.00元
本书分三部分、共16章介绍一些常用的设计模式。第一部分介绍处理对象创建的设计模式,包括工厂模式、建造者模式、原型模式;第二部分介绍处理一个系统中不同实体(类、对象等)之间关系的设计模式,包括外观模式、享元模式等;第三部分介绍处理系统实体之间通信的设计模式,包括责任链模式、观察者模式等。一起来看看 《精通Python设计模式》 这本书的介绍吧!