OAuth2 实现和用户管理 Django

问题描述 投票:0回答:1

概述

我已经在我的 Django 项目中成功实现了 oauth2。用户授权我的应用程序后,我会收到一个访问令牌,通过它,我可以访问他的所有信息(用户名和电子邮件)。 到目前为止一切都很好。

问题1

现在我想使用他的用户名让他登录而不询问他的密码。但问题来了。如果 A 已在我的应用程序上注册为 some_name 并且 B 已在授权服务器上注册为 some_name,则 B 可以在我的应用程序上访问 A 的信息。

问题2

因此,我想我可以使用与用户名一起提供的电子邮件来仔细检查用户身份。但另一个问题又来了。如果 A 已使用 a_namea_email 在我的应用程序上注册,并且相同的 A 已在授权服务器上注册为 a_nameb_email,则 A 将无法访问我的应用程序使用oauth2。


我知道这是一个理论问题,没有代码可供审查,所以如果有其他地方我应该发布此类问题,请告诉我。

python authentication oauth-2.0 user-management
1个回答
0
投票

可能不再有帮助了,但我还是想回答你的问题。

您应该检查您的 IdP 使用哪个字段来识别其用户。然后,您将应用程序中的该字段设置为唯一,然后就完成了。但是,请确保该字段是可验证的,否则无论 IdP 说什么,任何人都可以是任何人。

所以,总的来说,电子邮件始终是最好的选择。因为要使用它,您需要访问它,因此它是可验证的;用户名不是。

© www.soinside.com 2019 - 2024. All rights reserved.