对我的问题应该是一个简单的答案,但在网络上我似乎得到了相互矛盾的信息。
让我们假设我有一个使用基本HTTP身份验证的简单API。移动应用程序使用我在SSL上的API来注册新用户(POST)和(GET)任何用户信息/配置文件。
问题:我是否通过HTTP身份验证验证用户或应用?
作为一个例子......
让我们说
api.somedomain.com/user/create
api.somedomain.com/user/ {用户ID}
方案1:API在标头中使用基本身份验证,应用程序发送开发人员用户名和密码(而不是登录到其应用程序的用户)。用户可以通过应用程序创建,用户可以查看用户帐户。
缺点:如果有人发现应用程序正在使用的用户名和密码,他们可以创建用户并查看帐户。
场景2:我通过基本身份验证而不是应用程序验证用户。通过这种方式,用户可以在登录应用程序时查看其信息。
缺点:应用无法创建新用户,因为他们需要先将身份验证作为用户。
现在我知道第一个答案将是“使用OAuth”,但我想在这种情况下获得基本身份验证的答案。
先谢谢
答案 0 :(得分:2)
嗯,无论如何你有两个用户(两种用户)。一种是活人形,另一种是应用。
允许“应用程序类型用户”创建帐户,并允许“人形机器人”查看/编辑他的个人资料。
对于您的服务器,问题应该很简单:
首先,查看经过身份验证的人。匹配用户名和密码,找到客户端。
如果客户端尝试创建帐户或查看个人资料,请检查是否允许他执行此操作。
以与活人类相同的方式对待移动应用程序,并使它们的权限不同。您的移动应用程序在尝试创建帐户时可能会向您发送自己的凭据,但只要某人提供了自己的登录名和密码,请让移动应用程序使用由人提供的。