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 ...
随机推荐
- windows环境下简单Jenkins持续集成搭建
Jenkins是基于Java开发的持续集成工具,所以在安装Jenkins之前我们要确定电脑上已经安装了Java JDK并且环境变量配置正确,否则在启动使用java -jar Jenkins.war启动 ...
- ASP.NET的gridview设置数据格式(DataFormatString="{}") 2011年04月08日 16:26:00 阅读数:5318 标签: asp.net datagrid integer asp date strin
select convert(numeric(8,2),round(UnTaxAmount,2))as UnTaxAmount from View_SaleVoiceselect cast(UnT ...
- MySQL数据类型的长度
MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length).VARCHAR(Length).TINYINT(Length). SMALLINT(Length).ME ...
- ABAP-关于隐式与显式的DB Commit
转载:https://www.cnblogs.com/liaojunbo/archive/2011/07/11/2103491.html 1.显式的DB Commit 显式的DB Commit并没有对 ...
- ABAP-ITS Mobile
ITS Mobile是14年开发EWM项目时用到的技术方案,本文主要记录下ITS Mobile的整个实现过程. 1.ITS Mobile介绍 ITS Mobile:Internet Transacti ...
- 如何在Oracle中建立表和表空间?
1.建表空间 ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方 ...
- JPEG和Variant的转换
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ...
- java多线程实例(2)
public class ThreadDemo05 { public static void main(String args[]) { // 四个售票点应该控制同一个资源 Demo d = new ...
- 疯狂JAVA——第二章 理解面向对象
面向对象的三大特征:继承.封装和多态 面向对象的方式实际上由OOA(面向对象分析).OOD(面向对象设计)和OOP(面相对象编程)三个部分组成,其中OOA和OOD的结构需要用一个描述方式来描述并记录, ...
- Linux运维就业技术指导(九)期末架构考核
一,毕业架构设计考核筹备 1.1,架构图模板示例 1.1.1 架构图(一)概述 本架构是4层lvs负载均衡给后方7层nginx反向代理: 业务进行了动静分离: 数据库前端有memcached缓存组,降 ...