Laravel5.3~5.5 使用默认api验证登陆
2016-12-28 15:23
441 查看
讲解如何使用laravel5.3~5.5框架默认的api验证登陆。
框架自带有2个guard,在Illuminate\Auth\AuthManager里定义的。此类有2个方法:
分别调用SessionGuard和TokenGuard,由resolve($name)方法来调用。
配置文件中的driver填token,既是使用 Illuminate\Auth\TokenGuard,打开此文件,可以看到默认的token验证字段名是api_token
登陆验证:
验证了用户名和密码之后,生成一个api_token,填到数据库里。然后就可以使用token来访问需要登陆的页面了。
使用Auth门面调用guard,使用validate()方法验证身份:(返回bool)
user()方法返回用户信息
等等,具体查看Illuminate\Auth\TokenGuard类。
测试的话,直接使用get请求就行了:
原文地址:http://www.fullstack.pub/doc/16
讲道理
config/auth.php里,默认guard有web和api'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ],
框架自带有2个guard,在Illuminate\Auth\AuthManager里定义的。此类有2个方法:
public function createSessionDriver($name, $config) {...} public function createTokenDriver($name, $config) {...}
分别调用SessionGuard和TokenGuard,由resolve($name)方法来调用。
配置文件中的driver填token,既是使用 Illuminate\Auth\TokenGuard,打开此文件,可以看到默认的token验证字段名是api_token
public function __construct(UserProvider $provider, Request $request) { $this->request = $request; $this->provider = $provider; $this->inputKey = 'api_token'; $this->storageKey = 'api_token'; }
开始
数据库中添加字段不重复字段:api_token$table->string('api_token', 60)->unique();
登陆验证:
验证了用户名和密码之后,生成一个api_token,填到数据库里。然后就可以使用token来访问需要登陆的页面了。
使用Auth门面调用guard,使用validate()方法验证身份:(返回bool)
Auth::guard('api')->validate(['api_token' => $request->api_token)]); // 这里必须是$request->api_token,否则可以验证,单获取不到用户信息
user()方法返回用户信息
Auth::guard('api')->user();
等等,具体查看Illuminate\Auth\TokenGuard类。
测试的话,直接使用get请求就行了:
http://xxx.com/user?api_token=xxxxxxxxxx
原文地址:http://www.fullstack.pub/doc/16
相关文章推荐
- Laravel 5.3 使用内置的 Auth 组件实现多用户认证功能以及登陆才能访问后台的功能的一种实现方法
- laravel 5.5 使用 dingo 开发 API
- Django---用户注册和登陆验证(3)--具体实现--使用默认的
- Laravel5.3使用auth登录验证
- Oracle使用默认用户登陆时,conn sys/密码 as sysdba,密码怎么是什么都行啊?
- 使用API获取(默认付款条件和到期日)
- 使用telnet登陆smtp服务发邮件(带身份验证)和Base64加密算法源码(java版)
- 使用telnet登陆smtp服务发邮件(带身份验证)
- 使用Microsoft CryptoAPI进行加密、解密、签名及验证(代码)
- C#获取和设置系统的默认打印机,使用API
- 怎样在VS2008自带的SQl2005里使用sql server身份验证登陆 (转载) -怎样安装sql2005
- 使用Microsoft CryptoAPI进行加密、解密、签名及验证
- MVC3中使用AuthorizeAttribute特性来完成登陆权限的验证
- 在 Web 应用程序中使用 SharePoint API 以避免页面验证错误
- 关于使用VNC帮助windows远程桌面登录LINUX的方法(CentOS5.5已验证)
- 使用API获取(默认付款条件和到期日)
- Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新
- cookie使用总结--不需要在每页写入登陆验证!
- 重启验证使用的API与下断
- 使用Microsoft CryptoAPI进行加密、解密、签名及验证