Laravel5.4简单实现app接口Api Token认证方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-12-13 14:24:24 浏览: 评论:0
我是小白,今天写这篇文章主要是给新手学习看的,大佬就不用看了,有很多不足望大家指出,共同进步。
在开发中许多 API 通常在返回响应之前都需要某种形式的认证,有些时候,一个认证的请求和一个未认证的请求,响应可能不同。
在web项目中,实现认证比较轻松,那么前后端分离的项目中,我们要怎么实现认证,今天这篇文章就以 API token 认证机制,使用Token可以解决laravel API的无状态认证。
一、给用户表users增加api_token字段
php artisan make:migration add_api_token_to_users
首先,给用户表中增加 api_token字段,在生成的迁移文件中添加字段:
- <?php
- use Illuminate\Support\Facades\Schema;
- use Illuminate\Database\Schema\Blueprint;
- use Illuminate\Database\Migrations\Migration;
- class AddApiTokenToUsers extends Migration
- {
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- Schema::table('users', function (Blueprint $table) {
- $table->string('api_token', 64)->unique();
- });
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::table('users', function (Blueprint $table) {
- $table->dropColumn(['api_token']); //新增加的
- });
- }
- }
二、然后使用下面的命令将字段添加到表中:
php artisan migrate
三、用户注册:
在注册的控制器文件的创建用户中添加 api_token 字段:
我这里的控制器是App\Http\Controllers\Api\RegisterController.php
- protected function register(Request $request)
- {
- $input = $request->all(); //获取传过来的传数
- //在这里设置生成token后,与账号密码等信息一起存进User表
- $user = User::create($data); //存进数据库
- return $token;
- //这里面的逻辑自己写 我这里只是简单实现
- }
最后,不要忘记在 App\User.php用户模型表中的 $fillable 属性当中添加api_token字段:
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
- protected $fillable = [
- 'name', 'email', 'password','confirmation_token','api_token'
- ];
四、修改api driver:
接下来要在config\auth.php 修改如下内容:
- 'guards' => [
- 'web' => [
- 'driver' => 'session',
- 'provider' => 'users',
- ],
- 'api' => [
- 'driver' => 'token', //把driver设置为token
- 'provider' => 'users',
- ],
- ],
五、如何使用:
接下来,我们要添加路由,在routes\api.php文件修改:
- Route::group(['middleware' => 'token'], function(){
- Route::post('register', 'API\UserController@register');
- });
怎么访问?我们这里用postman来测试:
到些就大功告成了! 注意,这个只是基础认证,现在开发还是用别人已经开发好的插件好,比如oAuth2,basic,jwt,Passport等等。
哦对了,如果想看token的认证原理,我们可以看他的底层源码
vendor\laravel\framework\src\Illuminate\Auth\TokenGuard.php:
这个我也看不明白,哈!再见!
Tags: Laravel5 4 app接口 Token
- 上一篇:Laravel 实现数据软删除功能
- 下一篇:Yii框架分页技术实例分析
相关文章
- ·如何在laravel 5中使用DB事务?(2020-01-31)
- ·Laravel5中contracts详解(2021-05-15)
- ·Laravel 5 学习笔记(2021-05-15)
- ·Laravel 5.5官方推荐的Nginx配置学习教程(2021-08-11)
- ·laravel5 使用try catch的实例详解(2021-08-21)
- ·Laravel5.5中利用Passport实现Auth认证的方法(2021-08-22)
- ·Laravel 5.5基于内置的Auth模块实现前后台登陆详解(2021-08-25)
- ·Laravel5.2使用Captcha生成验证码实现登录(session巨坑)(2021-08-26)
- ·Laravel 5.4.36中session没有保存成功问题的解决(2021-09-03)
- ·在Laravel5.6中使用Swoole的协程数据库查询(2021-10-01)
- ·详细Laravel5.5执行表迁移命令出现表为空的解决方案(2021-10-10)
- ·Laravel5.5以下版本中如何自定义日志行为详解(2021-10-20)
- ·Laravel5框架添加自定义辅助函数的方法(2021-10-20)
- ·laravel5使用freetds连接sql server的方法(2021-11-02)
- ·Laravel5.4框架使用socialite实现github登录的方法(2021-11-13)
- ·Laravel5.7框架安装与使用学习笔记图文详解(2021-11-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)