用户登录后如何使用社交 API(如 facebook)将数据存储在数据库中
Posted
技术标签:
【中文标题】用户登录后如何使用社交 API(如 facebook)将数据存储在数据库中【英文标题】:How to store data on database after user login using social API, like facebook 【发布时间】:2022-01-22 00:21:00 【问题描述】:我正在开发一个使用 django 作为后端的 react-native 应用程序。 后端有一个扩展 AbstractBaseUser 的用户表,我想将社交登录用户的数据存储在该表中。 现在假设我使用 facebook 和 google 作为 social-auth API,当我获取fronted、profile_id 和 email 上的数据时(例如在 facebook 案例中),我必须使用哪个字段作为密码?我的意思是您会说这不是必需的,因为身份验证是通过 facebook 服务器进行的,但是“social_login/”端点无需任何权限即可访问,因此任何人都可以使用 facebook 用户电子邮件及其 profile_id 发出请求,正如我所看到的那样想想 html 检查器。
那么当用户第二次使用社交 API 登录时,我必须使用什么作为唯一且安全的标识符?我是否必须根据 profile_id 和电子邮件创建令牌/哈希?
请不要向我推荐 django-social-auth 或类似的东西,因为我需要高水平的定制,它们不符合我的需求。
谢谢
【问题讨论】:
【参考方案1】:Django 带有一个 signal 调度器,它允许接收器函数得到通知 当某些动作发生时。
当您需要代码执行时,信号非常有用 每次发生其他事情时都会发生一些事情。
信号允许您解耦逻辑: 无论触发的应用程序或代码(此处为 Facebook 日志记录)如何,您都可以捕获某个操作 该操作,并实现在该操作发生时执行的逻辑。
可以参考documentions
【讨论】:
以上是关于用户登录后如何使用社交 API(如 facebook)将数据存储在数据库中的主要内容,如果未能解决你的问题,请参考以下文章