位置: 编程技术 - 正文

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钩子场景)

  • 长期未付款
  • 出口货物退税是指
  • 董事会职权是否为强制规定
  • 固定资产加速折旧法
  • 公司固定资产抵税
  • 员工加班餐费计入会计什么科目
  • 年终奖报表怎么做
  • 申报个税人员金额一般
  • 怎么强调各个分公司之间无直接联系
  • 有哪些税收政策类型
  • 股东出资方式和比例是否合法?并说明理由
  • 个税登记app
  • 应付账款 暂估
  • 存货进口关税会计处理怎么做?
  • 不动产进项税额抵扣最新通知2023
  • 享受所得税减免优惠的生产性外商投资企业包括
  • 总公司调到子公司
  • 经营性固定资产计入什么科目
  • 长期待摊费用计提摊销的会计分录
  • 一般纳税人没有开票要交税吗
  • 小规模增值税普通发票税率
  • 公司月底可以出账吗
  • 事业单位需要写自传吗
  • 给政府开发票如何处理?
  • 工资不在本单位拿取的能加入会员吗
  • 准备金税前扣除什么意思
  • 收到分包公司工程发票收入怎么做账
  • 苗木免税票能随便开吗
  • 广告费超标今年怎么处理
  • 专用发票的审核要多久
  • 核定征收的个税怎么算
  • hdmi连接电视无法全屏
  • 定额发票属于什么会计
  • 餐费专用发票怎么抵扣
  • php is_integer
  • 电脑开机显示怎么取消?
  • 苹果充电宝怎么验真假
  • 企业收到款项
  • 确定无形资产使用寿命时应当考虑的因素有
  • 所有者权益变动额怎么算
  • 城镇土地使用税的计算公式
  • 可以跨城租车吗
  • php文件包含目录文件吗
  • vue动态组件component原理
  • 学前端的可以是什么专业的
  • 单位购日用品计提折旧吗
  • 一条sql更新多条记录
  • sqlserver2005数据库磁盘满了什么文件能删
  • 以前年度损益调整
  • 个体工商户核定征收超额怎么缴税
  • 初级会计实务中国财政经济出版社
  • 固定资产贷款利息计算器
  • 小规模纳税人开专票税率是1%还是3%
  • 房地产企业如何结转成本
  • 发票丢了能做账吗
  • 营业费用包括哪些?
  • sql注入是干嘛的
  • linux 命令帮助
  • freebsd安装手动分区
  • win10没有显示
  • windowsxp
  • win10电脑补丁 kb5000802
  • linux使用范围
  • WIN7系统屏幕亮度哪里设置
  • Android之Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
  • apktool修改包名
  • 详谈左晖
  • unity ui
  • javascript的理解
  • shell脚本 su
  • python中的urllib
  • UNITY gameobject代码中setacvtive(false)与面板中直接去掉勾 效果不一样
  • jquery获取页面元素
  • python+django
  • jquery+ajax实现直接提交表单实例分析
  • 美股印花税如何收取
  • 物流企业需要缴税吗
  • 铁岭医保网上怎么交费
  • 补缴印花税分录
  • 税务窗口岗位职责
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设