首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OAuth: OAuth实现用例

OAuth: OAuth实现用例
EN

Stack Overflow用户
提问于 2012-02-10 15:32:47
回答 2查看 558关注 0票数 5

我有一个网页应用程序,它做了大量的ajax请求与php服务器和数据库服务器。我还创建了一个iPhone应用程序和一个安卓应用程序,到目前为止,它们都是离线应用程序。

现在我想创建一个API,它将用于在web服务器和智能手机应用程序之间同步数据。我应该为此使用OAuth吗?我所读到的关于OAuth的内容-如果我想打开我的应用程序接口以供第三方应用程序使用,它似乎是被使用的。但在这里,我只想确保API和我自己的应用程序之间的数据安全传输。

谁能解释一下这件事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-10 16:32:59

OAuth的主要用途是使第三方应用程序有权访问网站上用户的私有资源,而无需向第三方应用程序提供用户凭据。例如,假设Twitter想要从您的Yahoo帐户中获取联系人列表。传统的方式是将你的用户名和密码提供给Twitter。但对于OAuth,你给他们一个临时令牌(称为Access Token),授权Twitter在一段有限的时间内访问你在雅虎上的联系人(直到这个令牌过期,或者你作为私有资源的所有者明确地撤销它)。

也就是说,OAuth并不是要在网络上安全地传输数据。这是另一个故事,通常是使用SSL实现的。即使您使用OAuth,您也必须同时使用SSL,以确保数据的发送和接收是安全的。

因此,在您的示例中,您必须了解API的用途。如果它是公共API,不向调用者提供任何私有数据,那么就不需要使用OAuth。但是,如果该接口用于访问单个用户的私有资源,则可以考虑使用OAuth。如果您选择实现OAuth,您可能会在未来允许其他第三方应用程序访问您的接口,而无需担心。

票数 4
EN

Stack Overflow用户

发布于 2015-06-08 23:29:01

这在很大程度上取决于你如何保护你的API。你的API是否对公众开放,特别是对帖子urls?如果您的数据不是每个用户都应该看到的数据,那么如何检查用户凭据的身份验证?

最重要的是,我们应该避免通过网络共享用户名和密码,以始终检查身份验证。这意味着,您的API不应该需要用户名和密码来验证用户是否有效。这可以通过从移动设备或设备id或其他东西发送用户名和密码来完成。

在这种情况下,OAuth服务器就会派上用场。基本上,在一个URL上,用户将发送他的用户名和密码来获取他的访问令牌。一旦获得,我们就可以使用访问令牌来验证每个请求并采取必要的操作。

你可以参考我在Laravel5中使用bshaffer实现OAuth服务器的视频,这是最好的OAuth库之一。https://www.youtube.com/watch?v=0vGXbWdtjls

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9224275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档