使用OAuth时,我们使用第三方来处理用户的身份验证
例如。当我们使用Facebook时,我们会在Facebook上“注册”我们的应用程序,当我们的应用程序用户尝试登录而不是向应用程序提供他使用Facebook帐户登录的凭据时。
我不明白为什么应用程序信任用户?所有的应用程序都知道用户是Facebook的信任,因为他在那里有一个帐户。我们怎么能相信用户真的应该访问应用程序?
答案 0 :(得分:1)
在这种情况下,"用户"您提供的服务是 Facebook / Google / Instagram /等。帐户。从您的角度来看,您并不关心输入凭据的人是谁。
通常,您所知道的是登录您应用的用户知道该帐户的用户名和密码。在外部验证案例中,您知道此人对此fb / google / inst的特定登录信息,并知道与其关联的密码。
请注意,在大多数情况下(本地或外部验证),您不知道与该帐户相关联的人(除非您有一些个人验证方法,如信用卡或发送带有一些认证的传统信件)。您所知道的是登录的人知道凭证。
从技术上讲,每个帐户(fb,google,inst)都是一个单独的"用户",您的本地凭据登录还是另一个。
整个概念实际上是关于用户的便利性,还有一些额外的好处,比如让别人存储和维护用户数据,额外的安全性等等。
那就是说,如果你坚持本地"它仍然完全没问题。凭证方法,只需确保它是安全的: - )
修改强>
一个简单的例子:
您的应用有两种登录选项 - 使用密码进行简单登录并使用Google登录。 您还有一位用户John Smith。
John打开您的应用,需要登录并且每个帐户都有一些敏感数据。
场景1 。约翰选择标准,"本地"登录选项并使用他的凭据JohnSmith1111和密码12345登录.John现在能够显示与帐户JohnSmith1111相关联的数据。
场景2 。 John选择使用Google登录。他被重定向到登录页面,在那里进行身份验证并返回到您的应用程序。您的应用会收到用户google_john_smith已成功通过身份验证的通知。 John现在可以显示与帐户google_john_smith相关联的数据。
重点是使用这些登录选项验证的帐户不一样!没有"信任"问题在这里。