资讯专栏INFORMATION COLUMN

API Token Authentication

KitorinZero / 2841人阅读

摘要:新增了很多的新特性,包括了内置多用户认证表单数组输入验证隐式路由模型绑定中间件组的定义中间件访问频率限制等主要功能。相对于变化有点大,简化了的目录结构,并将路由分离出来。由于已将的路由多带带分离出来,因此只需在中添加路由规则。

Laravel 5.2 新增了很多的新特性,包括了内置多用户认证表单数组输入验证隐式路由模型绑定中间件组的定义中间件 throttle 访问频率限制等主要功能。

即将发布的 Laravel 5.3 也新增了不少新的特性:全局辅助函数 cache() 查询构造器 where / update 新增 JSON 属性操作语法Blade 模板新增 $loop 变量更简单的分页实现图片尺寸验证规则等。Laravel 5.3 相对于 Laravel 5.2 变化有点大,简化了 app 的目录结构,并将路由分离出来。

本文主要介绍一下 Laravel 5.2 下使用 API Token Authentication, Laravel 5.2 带有了 TokenGuard 类。你可以让用户的 api_token 追加到 API 请求的后面,并用 api_token 验证请求,分为 Laravel5.2Laravel5.2 版本。

设置 api_token 字段并修改 User 模型 首先:

你要先给你的 users 表添加 api_token 的字段。

// Laravel5.2 和 Laravel5.3 一样
$table->string("api_token", 60)->unique();

如果你的项目刚创建,将上述的字段添加到 users_table migration

如果你的项目并不是新创建的,那么你可以去添加一个 migrationusers 表添加 api_token 字段。

然后:

User 模型中的 $fillable$hidden 添加 api_token 字段

// Laravel5.2 和 Laravel5.3 一样

project $fillable = ["name", "email", "password", "api_token"];

project $hidden = ["password", "remember_token", "api_token"];
用户创建时默认生成 api_token

由于 Laravel5.2Laravel5.3 创建内置的用户认证目录结构不一样,所以:
Laravel5.2:只需在 AppHttpControllersAuthAuthController 中的 create 方法添加:
Laravel5.3:则在 AppHttpControllersAuthRegisterController 中的 create 方法添加:

//将此代码添加到创建用户的数组中
"api_token" => str_random(60)
添加相对应的路由

我们要确保我们所有的 API 都通过使用 auth:api 中间件保护。

Laravel5.2

//将此代码放置到路由中。
Route::group([
    "prefix"     => "api",
    "middleware" => ["api", "auth:api"]
], function () {
    //Write Routes
});

Laravel5.3:由于 Laravel5.3 已将 api 的路由多带带分离出来,因此只需在 routesapi.php 中添加路由规则。路由组定义可以到 appProvidersRouteServiceProvider 中的 mapApiRoutes 方法查看。

通过在 auth 中间件后添加 :api ,告诉 Laravel 我们想使用设置在 config/auth.php 下的 apiguard 和 默认为 token

任何在 API 路由组的路由,所有的请求都需要验证 api_token

获取 User 记录
// Laravel5.2 和 Laravel5.3 一样
Auth::guard("api")->user();

这样的写法是为了让 Laravel 知道,我们想调用的是 api guard,而不是调用默认的 web guard

本文参照API Token Authentication in Laravel 5.2
更多请关注PIGJIAN BLOG

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21873.html

相关文章

  • 使用jMeter对基于SAP ID service进行Authentication的Restful

    摘要:因为这个项目最后会在年月日于上海举行的云大会上展示,所以当时完成集成工作后心想,还是得提前测试一下咱们的在响应并发请求时的性能做到心里有数。 这篇文章本来Jerry只在SAP社区上写了英文版的,可以通过点击文末的阅读原文获得。后来有两位做Marketing Cloud开发的德国同事,写邮件询问关于文章的更多细节,声称这种方式对他们自己的API性能测试很有用,所以我觉得还是值得用中文再写...

    longmon 评论0 收藏0
  • 如何在微服务架构中对资源(前端页面+后端接口)进行权限控制

    如何对资源(前端页面+后端接口)进行权限控制 在微服务架构中,请求的拦截在gateway中完成,而权限的查询是在uaa中完成,在gateway和uaa集成部署的情况下实现较为简单,如果两者分离实现起来就会比较麻烦,一种方案是在gateway的资源filter中内部调用uaa的权限查询模块,该方案是可行的,但是存在两个弊端: 响应延时:每个资源的请求都会附带一次uaa内部调用,加重uaa服务的负担...

    Nosee 评论0 收藏0
  • 记录下Flarum论坛API设计

    摘要: Using the API Every Flarum forum exposes a publicly-accessible JSON API that can read and write forum data. It conforms to the JSON-API 1.0 specification. Authentication The API uses token-base...

    YorkChen 评论0 收藏0
  • [译]web权限验证方法说明

    摘要:前言本文将会从最基本的一种权限验证说起,即,然后是基于和的权限验证,最后则是和一次性密码。由于它不依赖于,等任何外部因素,所以它是最简单的权限验证方法。当使用来进行权限验证时,有以下几点需要注意。 前言 本文将会从最基本的一种web权限验证说起,即HTTP Basic authentication,然后是基于cookies和tokens的权限验证,最后则是signatures和一次性密...

    MonoLog 评论0 收藏0
  • 前后端分离项目 — 基于SpringSecurity OAuth2.0用户认证

    摘要:前言现在的好多项目都是基于移动端以及前后端分离的项目,之前基于的前后端放到一起的项目已经慢慢失宠并淡出我们视线,尤其是当基于的微服务架构以及单页面应用流行起来后,情况更甚。使用生成是什么请自行百度。 1、前言 现在的好多项目都是基于APP移动端以及前后端分离的项目,之前基于Session的前后端放到一起的项目已经慢慢失宠并淡出我们视线,尤其是当基于SpringCloud的微服务架构以及...

    QLQ 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<