gpt4 book ai didi

ruby-on-rails - 将开放身份验证登录添加到用户模型时,表结构应该是什么样的

转载 作者:行者123 更新时间:2023-12-04 22:52:51 26 4
gpt4 key购买 nike

我有一个带有 User 模型的 Rails 应用程序。我想允许用户使用少量服务登录。我认为有两种方法可以将其存储在数据库中,但我不确定哪种方法最好。我应该注意,我希望用户能够连接多个服务并链接帐户。

方法一:
对于每个服务,将 token / secret 字段添加到用户表。这似乎有点问题,因为如果我想存储例如 twitter token 、twitter secret 、twitter 用户名和 twitter 个人资料 img 怎么办?我可以看到 User 表有许多未使用的列。我可能想在每项服务中存储额外的信息。它看起来像这样:

id
twitter_token
twitter_screenname
twitter_secret
twitter_pic
facebook_token
facebook_secret
facebook_pic
facebook_name
google_token
google_secret
google_name
etc.

方法 2:
或者每个用户可以有多个社交登录,每个社交登录都属于一个用户。然后我会有一张看起来像的 table
user_id
token
secret
social_type # foreign key to a social_site look up table
social_pic

社交类型表看起来像:
id
social_site_name
oauth_url

这种方法的唯一缺点是我必须概括我将存储的所有服务的内容。你们是怎么做的?也许 STI 在这里是有序的……对于从基本登录类继承的每种登录类型,都会有一个类。

谢谢!

最佳答案

我会建议这样的事情:

  • 每个 用户 可以有多个 登录 ,每个 登录 只属于一个 用户
  • 登录 属于特定 类型 ,一个 登录 仅属于一种 类型
  • SocialLogin 表具有所有 登录类型通用的字段 GoogleFaceBookTwitter 表具有特定于每一种的字段。

  • login_model_01

    关于ruby-on-rails - 将开放身份验证登录添加到用户模型时,表结构应该是什么样的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1809595/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com