用户登录后如何使用社交 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)将数据存储在数据库中的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.3 - 社交登录疑问

Keycloak 身份代理 API

我如何通过 jHipster REST api 进行社交登录?

如何为用户创建无痛的安全春季社交注册/登录

使用数据库和社交网站登录

我应该如何处理:Wordpress 社交登录(网络)和 Flutter(移动)