您当前的位置: 首页 >  ar

知其黑、受其白

暂无认证

  • 0浏览

    0关注

    1250博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Laravel api 认证

知其黑、受其白 发布时间:2021-01-28 18:11:41 ,浏览量:0

原理

注册:用户注册成功后,随机生成长字符串作为 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

            
关注
打赏
1665558895
查看更多评论
0.1029s