我们有一个django项目,它使用Graphene-Django库在我们的项目中实现一个GraphQL应用程序接口。这个后端是通过我们的移动应用访问的。对于应用程序的身份验证,我们使用django-graphql-jwt库,这是使用GraphQL方法的Django中的JSON Web令牌库。
现在,我们希望在我们的系统中实现Facebook登录,并使用它在Facebook中进行身份验证。认证通过后,手机应用发送到我们后台的只是用户的邮件。如何在没有密码的情况下在django-graphql-jwt中注册和验证用户?或者,有没有更好的工作流程?
发布于 2021-09-14 05:49:38
After authentication, what will be sent to our backend from the mobile app is only the email of the user.
嘿,阿尔·瑞安,这看起来像是OAuth的错误实现,你从facebook得到的是一个令牌,你把这个令牌发送到你的服务器,然后它会把它发回facebook,以验证它不是伪造的,然后只有用户才能登录。
否则,任何人都可以通过电子邮件呼叫服务器并充当该用户。
This是一个支持社交认证和JWT的库,看看这是否有帮助。
我还分享了我的项目的解决方案
object to >以上突变创建名为graphql in.
access_token和in.
errors,停止用户登录上面的响应将包含email,使用它来创建/获取User对象。
H119现在,您只需从突变函数返回JWT令牌。H220H121要生成访问和刷新令牌,请调用此函数jwt_encode,作为from dj_rest_auth.utils import jwt_encode
注意,我使用的是dj_rest_auth而不是django-graphql-jwt,但它相当于你只需要一个函数来签署JWT,rest都是自定义逻辑,所以最好自己写。
PS:对于攻击者来说,OAuth是一个敏感的入口点,所以实现是安全的,您可以联系atul7555atgmail.com获取任何帮助。
https://stackoverflow.com/questions/68585376
复制相似问题