我有一个简单的REST API(使用Slim框架)设置用户可以调用这样的页面:
subdomain.domain.com/api/musician/id/3273
检索和显示一些简单的JSON数据.
我想添加一些身份验证,以便只有具有某种客户端ID(至少)的用户可以访问这些数据.我希望用户能够在URL中传递他们的客户端秘密/身份信息,但是我想拉开这个关键点,而不必对REST架构进行屠杀.
有没有一个特定的框架或图书馆能够实现这一点?
我也有这个问题一段时间,我也有一个问题没有答案关于这个主题(在这里).
基本上你的选择是OAuth或者一些习惯.
现在,对于oauth,他们正在使用2.0版本,而不应该使用OAuth 1启动一个新项目,但事实是,oauth2远未完成,现在对于PHP的oauth2服务器几乎没有任何支持.我不想说oauth2的双腿/三脚是复杂的,但它不仅仅是它应该是,而且在阅读了很多关于这个的帖子之后,我决定现在我应该去别的东西而不是oauth(也是oauth创造者之一离开项目,因为他不满意这个项目的方向),因为它是一个“未定的”状态(当然人们会争辩说,这是相当准备使用,但我不在乎,我想要一些已经证明的东西,不想成为一个实验室老鼠,为大公司测试oauth [是的,oauth为巨大的公司的利益而不是你的]).
无论如何,回到我的问题,我一直喜欢亚马逊与他们的api一起工作,实现起来很简单,所以为什么不去同一个方向?我的意思是,亚马逊是最大的api提供商之一,如果他们使用它,他们有一个真正的理由这样做.
说完了,在不到两个小时的时间里,我的身份验证/授权协议正常运行,并且猜测什么,很简单,我喜欢写(不要因为oauth而感到沮丧).
一个很好的文章,帮助我开始是这样的:http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/这基本上表明你要做的事情.
所以,如果我是你,我会从那里开始:)