Laravel 5.5 Api
Laravel api token验证使用方法
从 Laravel 5.2 开始, Laravel 的将路由的配置进行了分拆, 在 routes 目录下有 web.php 和 api.php 两个路由的配置。 api.php 中用来放你的api 开放接口, 用作一种无状态的认证机制。
基本上就是通过在 url 的 querystring 中带一个参数 api_token 然后到服务器端用户表中找到此用户。
在Laravel 文档中对这块基本上没有说明。下面来看下实现步骤:
配置步骤
1. 首先要在用户表中添加 api_token 字段
你可以修改Laravel自带的迁移文件
打开 database/migrations/2014_10_12_000000_create_users_table.php
添加 api_token 字段
Schema::create('users', function (Blueprint $table) {
  $table->increments('id');
  $table->string('name');
  $table->string('email')->unique();
  $table->string('password');
  //添加 api_token 字段
  $table->string('api_token', 60)->unique();
  $table->rememberToken();
  $table->timestamps();
});
然后你可以重置并重新运行migration
php artisan migrate:reset
php artisan migrate
2.设置路由
在 routes/api.php 中设置我们的路由
Route::prefix('v1')->middleware('auth:api')->group(function() {
    // 取单条数据
    Route::get('notes/{id}',function($id){
        return Note::select('title', 'content')->find($id);
    });
});
使用 prefix 方法将 group 中的所有路由规则的url都加上 v1(版本号) 前缀,所以实际的请求地址是 :/api/v1/notes/{id}
middleware 使用 auth:api, :api代表使用的 Guard(看门)类, 在 config/auth.php 中可以看到 api Guard 的驱动设置的是 token, 这表示所有使用了 auth:api 中间路由规则,请求中都必须带 api_token 参数
打开 config/auth.php 配置稍微解释下
    'defaults' => [
        'guard' => 'web',
        'passwords' => 'users',
    ],
这个配置表示 默认的 guard 是web,意思是如果直接使用 meddleware('auth') 其实是 meddleware('auth:web')
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],
指名了各个guard所使用的驱动,web的话是session,api的话就是 token。
修改 app/User.php
添加 api_token 字段
    protected $fillable = [
        'name', 'email', 'password','api_token'
    ];
如何获取用户信息
    Auth::guard('api')->user();												
											Laravel 5.5 Api的更多相关文章
- [Laravel] 14 - REST API: Laravel from scratch
		
前言 一.基础 Ref: Build a REST API with Laravel API resources Goto: [Node.js] 08 - Web Server and REST AP ...
 - Laravel POST请求API接口 使用validate表单验证返回欢迎页
		
突然遇到的问题 就是使用Laravel进行开发API接口的时候 发现在表单验证不通过的时候返回了登录页 猜测问题应该是因为表单验证失败后进行了重定向导致的 因为返回状态码200 网上找了好久没找到 ...
 - 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法
		
利用Laravel 搭建oauth2 API接口 要求 laravel 5.4以上 安装 $ composer require laravel/passport 在配置文件 config/app.ph ...
 - laravel jwt 做API 退出登录(注销) 该怎么弄? 如何让token失效
		
laravel jwt 做API 退出登录(注销) 该怎么弄? 如何让token失效 php框架 laravel 2.1k 次浏览 问题对人有帮助,内容完整,我也想知道答案0问题没有实际价值,缺少关键 ...
 - laravel使用Dingo\Api通过response()->json()返回空对象
		
laravel使用Dingo\Api写接口跟android对接时,android一直反应解析错误,无法解析数据. { "status_code":200, "messag ...
 - laravel 配置路由 api和web定义的路由的区别详解
		
1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...
 - 【转】简单的 Laravel 5 REST API
		
Introduction Almost all successful internet based companies have APIs. API is an acronym for Applica ...
 - [Laravel] 10 - WEB API : wrapper
		
前言 一.常用的解决方案 React 前端 + PHP (Laravel) 后端 Such as "some exposure to WEB API’s and/or RESTful“. 使 ...
 - Laravel 的 JSON API 接口自动化测试
		
Laravel 自带了两种测试类型 Feature Test: 功能测试.针对类似接口这种流程性的测试. Unit Test: 单元测试.针对单个函数这种输入输出结果的测试. 新建一个 Feature ...
 
随机推荐
- python+selenium+requests爬取我的博客粉丝的名称
			
爬取目标 1.本次代码是在python2上运行通过的,python3的最需改2行代码,用到其它python模块 selenium 2.53.6 +firefox 44 BeautifulSoup re ...
 - 关系型数据库之Mysql
			
简介 主要知识点包括:能够与mysql建立连接,创建数据库.表,分别从图形界面与脚本界面两个方面讲解 相关的知识点包括:E-R关系模型,数据库的3范式,mysql中数据字段的类型,字段约束 数据库的操 ...
 - 《内存数据库和mysql的同步机制》
			
如下图
 - iframe中子页面父页面里函数互调
			
在iframe中很多要用的子页面父页面函数互调的情况,下面看一下各自用法,本人写个人网站的时候用过其他场景尚未试过 子页面调父页面 function fu(){ alert('父'); } funct ...
 - shiro与threamleaf的整合
			
1.添加依赖 2.在配置类中添加shiroDialect
 - 数学公式 AS3应用
			
普通做法: var pA:Point=new Point(100,100); var pB:Point=new Point(300,200); var dx:Number=pA.x-pB.x; var ...
 - 常用Sql语句,及注意事项
			
目录: sql语句 sql命令语句 关键字 sql语句 SELECT * FROM V$reserved_words;--查询oracle预留关键字 SELECT * FROM V$version;- ...
 - JAVA中的异常疑点解析
			
1 final, finally, finalize的区别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承. 内部类要访问局部变量,局部变量必须定义成final类型 ...
 - k-means处理图片
			
问题描述:把给定图片,用图片中最主要的三种颜色来表示该图片 k-means思想: 1.选择k个点作为初始中心 2.将每个点指派到最近的中心,形成k个簇cluster 3.重新计算每个簇的中心 4.如果 ...
 - Linux运维就业技术指导(九)期末架构考核
			
一,毕业架构设计考核筹备 1.1,架构图模板示例 1.1.1 架构图(一)概述 本架构是4层lvs负载均衡给后方7层nginx反向代理: 业务进行了动静分离: 数据库前端有memcached缓存组,降 ...