使用OAuth的RESTful API,其中身份验证令牌作为HTTP请求的一部分发送
我刚开始接触开发API。这是我课堂项目的一部分,目标是用Python创建一个RESTful API,使用OAuth进行授权,并且这些令牌需要作为HTTP请求的一部分发送。
有人建议我创建一个API,采用一种像代理的方式来处理OAuth模型,也就是说,身份验证令牌要作为HTTP请求的一部分发送。那么,像代理的方式到底是什么意思呢?有没有人能给我一些建议?
如果有人能帮我解决这个问题,并且教我如何创建一个API(即使不是特定于Python的,我也可以从中得到启发),我会非常感激。
1 个回答
0
如果你刚接触REST服务,可以看看这个链接,它会对你很有帮助。你还可以在这里找到如何用Python和Flask开发一个基本的REST API,以及如何实现认证。
那么,OAuth是什么呢?
OAuth可以有很多种用途。它最常见的用法是让一个应用程序(消费者)访问用户(资源拥有者)在另一个服务(提供者)上的数据或服务,而这种方式可以确保消费者不知道用户在提供者那里的登录信息。
举个例子,想象一个网站或应用程序请求你允许它访问你的Facebook账户,并在你的时间线上发布内容。在这个例子中,你是资源的拥有者(你拥有自己的Facebook时间线),第三方应用是消费者,而Facebook是提供者。即使你同意了访问,消费者应用写入你的时间线时,它也永远不会看到你的Facebook登录信息。
这种OAuth的用法不适用于客户端/服务器的RESTful API。只有当你的RESTful API可以被第三方应用(消费者)访问时,这种情况才有意义。
在直接的客户端/服务器通信中,不需要隐藏登录信息,客户端(上面例子中的curl)直接从用户那里获取凭证,并用这些凭证直接向服务器进行身份验证。