如何为管理和非管理帐户设计api面临的问题。我遵循MVC模式,控制器将映射到uri。
编造情景:
让我说,我有一个系统,允许用户赎回礼物后,他们花了钱购买商品和收集积分。
我的系统有一个用户配置文件,礼物,和赎回表。每个用户可以赎回多个礼物,每一个礼物可以被许多用户赎回。(赎回是连接表)。
要访问用户配置文件,uri将如下所示:
GET /user/0001赎回一份礼物
POST /user/0001/redeem {"amount":1, "address":"old address"}到目前为止,一切看起来都很好,很整洁。现在,当赎回需要由管理员用户批准时,问题就出现了。
因此,将赎回权更新为已批准的状态。
PUT /user/0001/redeem/100 {"status":"approve"}用户可以更新送货地址。
PUT /user/0001/redeem/100 {"address":"New address"}现在我面临以下问题:
如果我在uri前面添加一个管理器( admin /user/0001/redeem/100)。2不同路径将识别相同的资源。
发布于 2014-12-26 08:10:49
我要做以下几点:
( 1)有URL,如POST /admin/user/1000/ have /核可
原因:
2)“常用”方法之一是在成功登录后发出(定期更新的)会话cookie (与用户名或密码哈希无关),然后单独使用一种机制,将此cookie与用户名关联起来,并检查是否允许对该用户名进行给定的操作。
原因:减少了暴露用户信息的风险。(如果攻击者窃取cookie,此方法可能仍然容易受到攻击,但另一种方法也是如此)。
3)如果我们讨论安全性,将管理和用户数据存储在不同的表中并不是借口:)使用上面描述的cookie机制在这里可能会有所帮助,但是您仍然需要建立一种方法来验证给定的用户可以调用给定的方法。
https://stackoverflow.com/questions/27654348
复制相似问题