原文:https://qianjinyike.com/laravel-api-%E8%AE%A4%E8%AF%81/
编写完全为 API 服务的 Laravel 应用,并所有响应都是 JSON 格式时,使用API认证
- 原理
注册:用户注册成功后,随机生成长字符串作为 token,原生 token 返回给用户cookie。哈希后的 token 存到数据库里。
登陆:用户使用账号密码登陆成功,随机生成长字符串作为 token,原生 token 返回给用户cookie。哈希后的 token 存到数据库里。
认证:将用户传来的 token 进行哈希,然后去数据库中查找之前存的哈希过的token进行对比 ,相等就认证成功,否则失败
- 数据库追加api_token字段并在User模型中添加白名单
$table->string('api_token', 80)->unique()->nullable()->default(null);
- 修改 api_token 这个名称
// 如果修改字段名称 api_token,请记得修改配置文件 config/auth.php 中的 storage_key
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
'storage_key' => 'api_token',
],
- 修改配置,将默认web认证改为API认证
guard 设置为 api,hash 设置为 true
// config/auth.php
'defaults' => [
'guard' => 'api', // 默认 api 认证
'passwords' => 'users',