当前位置:  开发笔记 > 编程语言 > 正文

将开放式身份验证登录添加到用户模型时,表结构应该是什么样子

如何解决《将开放式身份验证登录添加到用户模型时,表结构应该是什么样子》经验,为你挑选了1个好方法。

我有一个带有用户模型的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在这里是有序的......每个类型的登录都有一个类,它继承自基础登录类.

谢谢!



1> Damir Sudare..:

我会建议这样的事情:

每个用户可以有多个登录,每个登录只属于一个用户.

登录属于特定类型,一个登录只有一种类型.

SocialLogin表有共同所有领域的登录类型,Google,FaceBookTwitter表有具体到每一个领域.

login_model_01

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有