内容简介:我们先来看
不同认证方式
我们先来看 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,用于分析和验证
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Rails
David Griffiths / O'Reilly Media / 2008-12-30 / USD 49.99
Figure its about time that you hop on the Ruby on Rails bandwagon? You've heard that it'll increase your productivity exponentially, and allow you to created full fledged web applications with minimal......一起来看看 《Head First Rails》 这本书的介绍吧!