首页 >后端开发 >php教程 >Yii 2.0 Restful 接口 三种方式问题

Yii 2.0 Restful 接口 三种方式问题

WBOY
WBOY原创
2016-07-06 13:53:381053浏览

公司做手机端,需要调用后台接口,主要原因是因为想安全一些,所以选择了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 就可以。。 密码问题用高级版 就直接没有问题了 所以还是极力推荐直接高级版。。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn