我们有一个网站,唯一的登录和认证方式是使用Facebook(这不是我的选择)。第一次使用Facebook登录时,系统会自动为您创建一个帐户。
现在,我们想为我们的网站创建一个iPhone应用程序,并提供一个公共API供其他人使用我们的服务。
这个问题是关于如何从应用程序/API与我们的网站进行身份验证,可以分为两个部分:
- 如果一个网站只使用Facebook OAuth作为身份验证方法,正确的处理REST身份验证的方法是什么?
我已经阅读并研究了很多关于REST API标准身份验证方法的文章。我们不能使用像Basic Auth over HTTPS这样的方法,因为没有用户的凭据。像这样的方法似乎只用于验证使用API的应用程序。
目前,我能想到的最好的方法是在我们的API上访问/authorize终点,它会重定向到Facebook OAuth,然后重定向回网站并提供一个“令牌”,API的用户可以使用它来认证后续请求。
- 对于我们创建的官方应用程序,我们不一定需要以相同的方式使用公共API。那么,与我们的网站交互和验证用户的最佳方法是什么?
我理解(我想)如何验证使用我们的API的第三方应用程序,使用API(公共)密钥和密钥(私有)。然而,当涉及到验证使用应用程序的用户时,当我们唯一的身份验证方式是Facebook时,我开始感到非常困惑。
我觉得我可能漏掉了一些非常明显的东西,或者不完全了解公共REST API的工作原理,因此任何建议和帮助都将不胜感激。