Yii 2.0 Restful 接口 三种方式问题
公司做手机端,需要调用后台接口,主要原因是因为想安全一些,所以选择了Yii2.0,因为之前一直用的Qee框架,Yii不是特别熟悉,而且后来做Ionic,更加不熟悉框架。现在让我(小白),研究如何写一套Restful的接口。。
想问一下 HttpBasicAuth 是不是 简单的说 就是 登录之后 服务器返回一个access_token给手机端, 然后之后所有的url请求里 都在头部加入access-token 键值对是 Authorization:Basic xxxxx 这样的形式吗。
QueryParamAuth 是我唯一在postman里实现的,但是感觉比较简单,安全性一般 单纯就是在数据库里加入 access_token 字段 然后再请求url后面加上 access-token=xxx 这种形式的,然后我会得到整个数据库的内容,而不是单一的对应的某个用户的数据(也可能是我没做限制,不是很懂)
HttpBearerAuth 不是很懂 感觉和HttpBasicAuth有点类似,是不是登录后 在头部加入类似Authorization:Bearer XXXX 这样的形式。
现在有个问题是,我模型User里有个validatePassword方法 里面返回password
<code>return $this->password === ($password); </code>
但是这个 $this->password 是 null (不是很懂Yii框架, 这个是要自己去数据库里找出password赋值给$password 还是 有什么其他方式?) 目前demo是直接用 $password = 123;这样的形式
希望能简单说一下三种方式整个运行套路。。 stackoverflow google segmentfault 都看了好多了 还是不是很懂。。
谢谢各位。
回复内容:
公司做手机端,需要调用后台接口,主要原因是因为想安全一些,所以选择了Yii2.0,因为之前一直用的Qee框架,Yii不是特别熟悉,而且后来做Ionic,更加不熟悉框架。现在让我(小白),研究如何写一套Restful的接口。。
想问一下 HttpBasicAuth 是不是 简单的说 就是 登录之后 服务器返回一个access_token给手机端, 然后之后所有的url请求里 都在头部加入access-token 键值对是 Authorization:Basic xxxxx 这样的形式吗。
QueryParamAuth 是我唯一在postman里实现的,但是感觉比较简单,安全性一般 单纯就是在数据库里加入 access_token 字段 然后再请求url后面加上 access-token=xxx 这种形式的,然后我会得到整个数据库的内容,而不是单一的对应的某个用户的数据(也可能是我没做限制,不是很懂)
HttpBearerAuth 不是很懂 感觉和HttpBasicAuth有点类似,是不是登录后 在头部加入类似Authorization:Bearer XXXX 这样的形式。
现在有个问题是,我模型User里有个validatePassword方法 里面返回password
<code>return $this->password === ($password); </code>
但是这个 $this->password 是 null (不是很懂Yii框架, 这个是要自己去数据库里找出password赋值给$password 还是 有什么其他方式?) 目前demo是直接用 $password = 123;这样的形式
希望能简单说一下三种方式整个运行套路。。 stackoverflow google segmentfault 都看了好多了 还是不是很懂。。
谢谢各位。
Yii2的RESTful API认证问题,我之前也遇到过。认证的方式是可以采用官方提供的方式,然后也可以再自己扩展的。我后来写过一篇文章Yii2使用RESTful API及其认证问题。可以供题主参考。
我觉得你不必使用Yii, 转而使用一个router结合你比较熟悉的Qee来做, 比如 nikic/FastRoute, thephpleague/route;
或者使用slim这样轻量的框架;
目前还是选择了 最简单的QueryParamAuth方法 之前公司电脑上高级版一直无法运行起来 现在可以运行了 做restful的话 最好还是用高级版 方便。。 QueryParamAuth方法的话 只需要再url后面加上?access-token=xxxx 就可以。。 密码问题用高级版 就直接没有问题了 所以还是极力推荐直接高级版。。

热AI工具

Undress AI Tool
免费脱衣服图片

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHPisstillrelevantinmodernenterpriseenvironments.1.ModernPHP(7.xand8.x)offersperformancegains,stricttyping,JITcompilation,andmodernsyntax,makingitsuitableforlarge-scaleapplications.2.PHPintegrateseffectivelyinhybridarchitectures,servingasanAPIgateway

避免N 1查询问题,通过提前加载关联数据来减少数据库查询次数;2.仅选择所需字段,避免加载完整实体以节省内存和带宽;3.合理使用缓存策略,如Doctrine的二级缓存或Redis缓存高频查询结果;4.优化实体生命周期,定期调用clear()释放内存以防止内存溢出;5.确保数据库索引存在并分析生成的SQL语句以避免低效查询;6.在无需跟踪变更的场景下禁用自动变更跟踪,改用数组或轻量模式提升性能。正确使用ORM需结合SQL监控、缓存、批量处理和适当优化,在保持开发效率的同时确保应用性能。

要构建弹性的PHP微服务,需使用RabbitMQ实现异步通信,1.通过消息队列解耦服务,避免级联故障;2.配置持久化队列、持久化消息、发布确认和手动ACK以确保可靠性;3.使用指数退避重试、TTL和死信队列安全处理失败;4.通过supervisord等工具守护消费者进程并启用心跳机制保障服务健康;最终实现系统在故障中持续运作的能力。

使用subprocess.run()可安全执行shell命令并捕获输出,推荐以列表传参避免注入风险;2.需要shell特性时可设shell=True,但需警惕命令注入;3.使用subprocess.Popen可实现实时输出处理;4.设置check=True可在命令失败时抛出异常;5.简单场景可直接链式调用获取输出;日常应优先使用subprocess.run(),避免使用os.system()或已弃用模块,以上方法覆盖了Python中执行shell命令的核心用法。

使用正确的PHP基础镜像并配置安全、性能优化的Docker环境是实现生产就绪的关键。1.选用php:8.3-fpm-alpine作为基础镜像以减少攻击面并提升性能;2.通过自定义php.ini禁用危险函数、关闭错误显示并启用Opcache及JIT以增强安全与性能;3.使用Nginx作为反向代理,限制访问敏感文件并正确转发PHP请求至PHP-FPM;4.采用多阶段构建优化镜像,移除开发依赖,设置非root用户运行容器;5.可选Supervisord管理多个进程如cron;6.部署前验证无敏感信息泄

ReadonlypropertiesinPHP8.2canonlybeassignedonceintheconstructororatdeclarationandcannotbemodifiedafterward,enforcingimmutabilityatthelanguagelevel.2.Toachievedeepimmutability,wrapmutabletypeslikearraysinArrayObjectorusecustomimmutablecollectionssucha

settings.json文件位于用户级或工作区级路径,用于自定义VSCode设置。1.用户级路径:Windows为C:\Users\\AppData\Roaming\Code\User\settings.json,macOS为/Users//Library/ApplicationSupport/Code/User/settings.json,Linux为/home//.config/Code/User/settings.json;2.工作区级路径:项目根目录下的.vscode/settings

Bref使PHP开发者能无需管理服务器即可构建可扩展、成本高效的应用。1.Bref通过提供优化的PHP运行时层,将PHP带入AWSLambda,支持PHP8.3等版本,并与Laravel、Symfony等框架无缝集成;2.部署步骤包括:使用Composer安装Bref,配置serverless.yml定义函数和事件,如HTTP端点和Artisan命令;3.执行serverlessdeploy命令即可完成部署,自动配置APIGateway并生成访问URL;4.针对Lambda限制,Bref提供解决
