OAuth是一个很好的框架,允许委派身份验证,因此用户无需使用新的用户名和密码即可使用您的网站。但是,我对如何存储经过OAuth身份验证的用户有点朦胧,以便您可以对该用户执行应用程序级权限。
OAuth返回有关用户的一些声明,包括声明的标识符和电子邮件。到目前为止,我一直使用声明的标识符作为OAuth认证用户的唯一标识符,但这样做存在一些问题。
这两个都是完全合理的,但尤其是第一个让人感到有点痛苦。
将此主要标识符移动到电子邮件地址意味着无论使用哪个URL和提供商,只要他们拥有相同的电子邮件地址,我就会将他们统一为同一个用户。
我的问题是如果我转而使用电子邮件声明作为我的用户的唯一标识符,我的权限基于此是否安全?
关注
答案 0 :(得分:0)
我认为你在谈论的是OpenID而不是OAuth。
如果您查看main providers,可以假设他们拥有其用户的有效电子邮件属性(例如,在myopenid.com中是可选的,但是他们推荐它,因此他们有电子邮件他们的大多数用户)。
电子邮件是唯一标识符,是识别用户的好方法。
我认为在您的应用程序中使用电子邮件作为标识符没有任何安全问题。但是,所有用户都希望与您的应用程序共享其电子邮件属性是一个问题。