回答编辑的问题和评论: 所有用户信息都应始终受到强大的加密和用户身份验证的保护。我们之所以读到那么多关于网站和数据库黑客攻击的新闻文章,是因为开发人员说“我们真的需要保护它吗”,然后回答“不需要,因为只有我们才能访问数据库,安全很难等等”。黑客下载了数据库,信用卡、电子邮件地址、电话号码、密码等等都会变得不安全。 只有两个真正的秘密 - 一个是存储在某人头脑中的密码,另一个是只有授权用户才能访问的强大随机值(例如物理令牌)。如果您认为可以仅从电子邮件地址派生出安全密钥,或者认为需要将秘密存储在数据库中,那么您并不真正了解安全性。 我想我试图发现的是OAuth提供程序是否可以向OAuth客户端提供与用户和客户端都安全关联的不可变值 - 实际上,这将是一种仅通过用户的密钥(他们的身份验证密码)和OAuth协议中使用的客户端密钥组合才能解锁的密钥。然后,客户端可以使用此值为用户的数据提供合理的安全级别。
当然,这种实现并不完美,容易被滥用,但如果正确实现,可以提供一种合理的方式来保护数据,同时仍使用OAuth方案的良好实践。