原理
注册:用户注册成功后,随机生成长字符串作为 token,原生 token 返回给用户。哈希后的 token 存到数据库里。
登陆:用户使用账号密码登陆成功,随机生成长字符串作为 token,原生 token 返回给用户。哈希后的 token 存到数据库里。
认证:将用户传来的 token 进行哈希,然后去数据库中查找哈希后的 token ,找到了就认证成功,否则失败。
创建项目与配置composer create-project --prefer-dist laravel/laravel blog "6.*"
# 在 .env 中配置数据库信息
php artisan migrate
添加 api_token 字段,可空,唯一,默认 null。(可直接修改,也可以创建下面的代码片段然后迁移)
# php artisan make:migration add_api_token_to_users_table --table=users
Schema::table('users', function ($table) {
$table->string('api_token', 80)->after('password')
->unique()
->nullable()
->default(null);
});
php artisan migrate
我们的例子还需要设置 email 可为空,因为我们以用户名作为认证的依据。
设置模型可以操作 api_token 字段# App\User.php
protected $fillable = [
'name', 'email', 'password', 'api_token',
];
修改 api_token 这个名称
如果修改字段名称 api_token
,请记得修改配置文件 config/auth.php
中的 storage_key
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
'storage_key' => 'api_token',
],
guard 设置为 api,hash 设置为 true
// config/auth.php
'defaults' => [
'guard' => 'api', // 默认 api 认证
'passwords' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => true, // 利用 SHA-256 算法哈希你的令牌
],
设置所有请求和响应都是 json 格式
请注意不要使用 php artisan make:request BaseRequest
,这会使得你的 BaseRequest
继承 FormRequest
,而我们要覆盖的是 Illuminate\Http\Request
,所以我们应当继承的是 Request
。
新建文件 app\Http\Requests\BaseRequest.php
:
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?