位置: 编程技术 - 正文

Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解(yii2框架和fastadmin建商城网站哪个好用)

编辑:rootadmin

推荐整理分享Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解(yii2框架和fastadmin建商城网站哪个好用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yii2框架从入门到精通,yii2框架真的好烂,yii2框架面试题,yii2框架中文手册,yii2框架中文手册,yii2框架优秀在哪里,yii2框架面试题,yii2框架优秀在哪里,内容如对您有帮助,希望把文章链接给更多的朋友!

之前写过一篇Yii2框架制作RESTful风格的API快速入门教程,今天接着来探究一下Yii2 RESTful的格式化响应,授权认证和速率限制三个部分

一、目录结构

先列出需要改动的文件。目录如下:

二、格式化响应

Yii2 RESTful支持JSON和XML格式,如果想指定返回数据的格式,需要配置yiifiltersContentNegotiator::formats属性。例如,要返回JSON格式,修改frontend/controllers/BookController.php,加入红色标记代码:

返回XML格式:FORMAT_XML。formats属性的keys支持MIME类型,而values必须在yiiwebResponse::formatters中支持被响应格式名称。

三、授权认证

RESTful APIs通常是无状态的,因此每个请求应附带某种授权凭证,即每个请求都发送一个access token来认证用户。

1.配置user应用组件(不是必要的,但是推荐配置):

  设置yiiwebUser::enableSession属性为false(因为RESTful APIs为无状态的,当yiiwebUser::enableSession为false,请求中的用户认证状态就不能通过session来保持)

Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解(yii2框架和fastadmin建商城网站哪个好用)

  设置yiiwebUser::loginUrl属性为null(显示一个HTTP 错误而不是跳转到登录界面)

具体方法,修改frontend/config/main.php,加入红色标记代码:

2.在控制器类中配置authenticator行为来指定使用哪种认证方式,修改frontend/controllers/BookController.php,加入红色标记代码:

3.创建一张user表

在common/models/User.php类中实现 yiiwebIdentityInterface::findIdentityByAccessToken()方法。修改common/models/User.php,加入红色标记代码::

四、速率限制

为防止滥用,可以增加速率限制。例如,限制每个用户的API的使用是在秒内最多次的API调用,如果一个用户同一个时间段内太多的请求被接收,将返回响应状态代码 (这意味着过多的请求)。

1.Yii会自动使用yiifiltersRateLimiter为yiirestController配置一个行为过滤器来执行速率限制检查。如果速度超出限制,该速率限制器将抛出一个yiiwebTooManyRequestsHttpException。

修改frontend/controllers/BookController.php,加入红色标记代码:

2.在user表中使用两列来记录容差和时间戳信息。为了提高性能,可以考虑使用缓存或NoSQL存储这些信息。

修改common/models/User.php,加入红色标记代码:

以上所述是小编给大家介绍的Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

thinkPHP中钩子的两种配置调用方法详解 本文实例讲述了thinkPHP中钩子的两种配置调用方法。分享给大家供大家参考,具体如下:thinkphp的钩子行为类是一个比较难以理解的问题,网上有很多写t

thinkPHP多语言切换设置方法详解 本文实例讲述了thinkPHP多语言切换设置方法。分享给大家供大家参考,具体如下:thinkphp多语言设置有点‘高大上',为什么说它有点‘高大上'呢?因为

PHP上传图片、删除图片简单实例 简单PHP上传图片、删除图片实现代码上传图片:if(!empty($_FILES["img"]["name"])){//提取文件域内容名称,并判断$path=uppic/;//上传路径if(!file_exists($path)){//检查

标签: yii2框架和fastadmin建商城网站哪个好用

本文链接地址:https://www.jiuchutong.com/biancheng/301635.html 转载请保留说明!

上一篇:PHP yii实现model添加默认值的方法(两种方法)(php remote_addr)

下一篇:thinkPHP中钩子的两种配置调用方法详解(thinkphp钩子场景)

  • 如何合伙注册公司
  • 摊余成本的构成内容
  • 民办非企业可以上市吗
  • 如何判断会计政策变动
  • 物业公司外包保安死亡
  • 银行开户许可证图片
  • 验签失败的发票追不回来怎么办
  • 向税务局缴纳工伤保险费有发票吗
  • 补开去年未开票收入
  • 进项税额转出后企业所得税怎么处理?
  • 土地使用税与房产税的区别
  • 一般纳税人企业所得税政策最新2023
  • 残疾人就业保障金怎么申报
  • 公司不动产管理办法
  • 原始凭证谁负责
  • 用工和用人单位
  • 增值税专用发票电子版
  • 对公账户收到个人汇款 退还
  • 调拨资产入账按原值还是按净值
  • 增资印花税税目
  • 不动产进项税为什么不能抵扣
  • win11虚拟键盘怎么调出来
  • 营运资金主要包括什么
  • 天猫魔投安装教程
  • 股东分红怎么处理
  • 部分苹果iOS17功能延后推出
  • php redis常用命令
  • PHP:parse_ini_file()的用法_Filesystem函数
  • 短期借款利息怎么做分录
  • 增值税纳税人的区别
  • thinkphp删除数据
  • 印克斯湖国家公园中的德克萨斯矢车菊,德克萨斯州 (© Inge Johnsson/Alamy)
  • 缴纳社保公司需要税务登记吗
  • 商业预付卡可以报销吗
  • ech命令
  • ufw 设置
  • 递延所得税的会计应用
  • 固定资产无形资产计提折旧是当月还是次月
  • 上月未结账本月是否能记账
  • 金蝶k3如何设置现金流量表取数公式
  • 如何利用远期交易保值
  • 珠宝首饰可以开发票吗
  • 免税所得包括哪些
  • 平台收取佣金开什么发票
  • Mysql创建通用设备管理信息系统数据库
  • 企业实收资本与实缴资本
  • 出口货物做免税处理
  • 个人扣税是怎么扣的
  • 办公室清洁费计入办公费吗
  • 企业办理名称变更怎么办
  • 公司租用私人汽车怎么操作
  • 主营业务收入用什么账簿登记
  • 期末计提利息怎么算
  • 餐饮费与业务招标的关系
  • 平均增长率计算公式怎么算
  • 企业建账目的
  • sqlserver触发器语法
  • mysql转换数据类型
  • windows10安装教程u盘安装
  • mac蓝牙怎么连接耳机
  • windows2008和win8
  • shstart.exe - shstart是什么进程 有什么用
  • win 8怎么样
  • linux如何查看磁盘信息
  • 怎么看win8还是win10
  • linux发布项目
  • win8如何激活
  • win7 netplwiz
  • win10开始菜单图标消失
  • Windows设置在哪里
  • javascript 基础
  • 物理引擎演示
  • json jquery
  • shell 1
  • 有没有改善
  • jquery提供了三种删除节点的方法,分别是什么
  • 手机unity游戏
  • 贵阳市税务稽查
  • 5种方式教你如何查询
  • 信托公司抵押房能买吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设