使用Slim Framework的REST客户端密钥

use*_*661 12 php rest slim

我有一个简单的REST API(使用Slim框架)设置,用户可以调用这样的页面:

subdomain.domain.com/api/musician/id/3273
Run Code Online (Sandbox Code Playgroud)

检索并显示一些简单的JSON数据.

我想为此添加一些身份验证,以便只有具有某种客户端ID(至少)的用户才能访问此数据.我希望用户能够在URL中传递他们的客户端密钥/ id信息,但是我想在没有过多地编写REST结构的情况下将其拉出来.

是否有某个框架或库对实现这一目标特别有效?

Twi*_*919 8

我也有这个问题已经有一段时间了,我也有一个问题没有关于这个主题的答案(在这里).

基本上你的选择是OAuth或自定义.

现在,对于oauth,他们正在使用2.0版,你不应该使用OAuth 1开始一个新项目,但问题是,oauth2还远没有完成,现在几乎没有支持oauth2服务器的php.我不想说oauth2 2-legged/3-legged是复杂的,但它比它应该更多,并且在阅读了很多关于这个的帖子之后,我决定现在,我应该选择别的东西,而不是oauth(也是,其中一个oauth创建者离开了项目,因为他对这个项目的方向不满意)因为它处于"未定"的状态(当然人们会争辩说它已经准备就绪,但我不在乎,我想要已经证实的东西,不想成为大公司测试oauth的实验室老鼠[是的,oauth为大公司的利益而不是你的利益]).

无论如何,回到我的问题,我总是喜欢亚马逊使用他们的api的方式,它实现起来非常简单,那么为什么不朝着同一个方向前进呢?我的意思是,亚马逊是最大的api提供商之一,如果他们使用它,他们有一个真正的理由这样做.
说完了,在不到两个小时的时间里,我的身份验证/授权协议已经启动并运行了,猜猜是什么,这很简单,我喜欢写它(不会因为oauth而感到沮丧).一篇帮助我开始的好文章是这样的:http://www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/,它基本上扼杀了你必须做的事情.

所以,如果我是你,我会从那里开始:)

  • 你的链接断了 (5认同)

Sha*_*ady 5

如果您的API客户并非"代表"您的用户,那么OAuth在我看来是过度的.

您可以发布的标准API密钥将起作用.如果需要,您还可以添加请求签名.

一些苗条的例子:这里这里