加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在向用户模型添加open auth登录时,表结构应该

发布时间:2020-12-17 03:51:06 所属栏目:百科 来源:网络整理
导读:我有一个带有用户模型的Rails应用程序.我想允许用户使用一些服务登录.我有两种方法可以将其存储在数据库中,但我不确定哪种方法最好.我应该注意,我希望用户能够连接多个服务并链接帐户. 方法1: 对于每个服务,将令牌/秘密字段添加到User表.这似乎有点问题,因
我有一个带有用户模型的Rails应用程序.我想允许用户使用一些服务登录.我有两种方法可以将其存储在数据库中,但我不确定哪种方法最好.我应该注意,我希望用户能够连接多个服务并链接帐户.

方法1:
对于每个服务,将令牌/秘密字段添加到User表.这似乎有点问题,因为如果我想存储,例如,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:
或者每个用户可以拥有许多社交登录,并且每个社交登录属于一个用户.然后我会有一张看起来像的桌子

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表具有所有登录类型共有的字段,Google,FaceBook和Twitter表具有特定于每个登录类型的字段.

login_model_01

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读