想在rest风格API中提供图形验证码,发现有多处问题:1.依据rest规则,所有get操作应该不改变服务器状态,但是图形码是直接嵌入在img中使用的。如下图片代码:
<img src='/api/v1/captcha?t=13249234'/>
每次刷新,都应该重置服务器上的验证码,但如果用post,代码就会显得很诡异,请问怎么解决?2.rest是无状态协议,而常见的captcha类库都用到了session,请问是不是要为rest api重写captcha的类库?
6 回答

阿晨1998
TA贡献2037条经验 获得超6个赞
GET /api/v1/captcha/13249234
服务端路由处理好即可,可以理解为13249234
就是验证码
这个资源的标识符,不是验证码里面的内容

浮云间
TA贡献1829条经验 获得超4个赞
REST可以实现会话的啊。
POST一个请求给/session创建一个会话资源/session/1234,1234就是会话的ID。返回的HTTP 201 Created里面有session_created的数据,包括一个动态的会话口令(签名),以及新会话资源的URL。
带着这个口令(签名)GET请求会话资源/session/1234/captcha,相当于获取这个会话的一个属性,也可以往里面/session/1234/里面PUT别的东西。这样就可以和CAPTCHA结合起来了。
添加回答
举报
0/150
提交
取消