我想为我的登录系统使用janrain,一切都准备好了,但我不知道如何构建我的数据库?使用openID的数据库设计是什么?特别是当某些用户有一些不同的提供者时,我怎么能知道他们是谁?他们是新用户还是旧用户?我想为其创建一个完整的数据库设计什么是使用openID的数据库的设计?
0
A
回答
1
在要存储的表中为openId添加一列用户信息。
一个例子是如下:
create table users (
first_name varchar(50),
last_name varchar(50),
email_address varchar(100),
openId varchar(150));
你还可以设置一个指数为OpenID的,这样的搜索速度更快,当你将用户登录到应用程序中。还要添加UNIQUE约束,以便对于具有相同openId的用户不存在两行
0
所有您需要的是存储由您使用的任何OpenID库返回的身份URL的列。
您可能会考虑将其放在只有identity
和userid
列的单独表格中,以便用户可以将多个openid分配给他的帐户。
0
我会建议你在我的应用程序中做的事情。我在布尔用户表中有一列。如果用户使用openID则为1,否则为0。另一个表是opneID表,它有使用开放ID时提供给他们的提供者和密钥。所以,你将有三种情况如下:
- 用户已经登录,想要添加的OpenID明年他在登录时
- 用户已经注册,但希望他登录到使用OpenID的下一次。
- 用户未注册并且想要使用OpenID登录。
这是我做过什么:
的细节已经存储,以便查找当前登录的用户,并让OpenID的布尔为true,并添加OpenID的细节,他会提供。
当他点击的OpenID问他是否已经被注册,如果他是问电子邮件ID和密码,然后使用OpenID的详细信息。
- (这是最难的部分)使OpenID的布尔1,添加的OpenID的详细信息,然后给他刚刚问了重要的细节是什么适合你的应用的形式。根据您的应用程序的规模,您可能不需要第二个表单。我正在处理的应用程序需要用户提供额外的信息。如果您想跳过第二步,您可以查看Facebook API提供的一些选项来检索first_name last_name等详细信息并保存。
因此,当用户登录时,检查OpenID布尔值是否设置为0或1,如果它设置为1,则使用相应的OpenID细节,您可能已通过适当的连接保存。
我发现最难的部分是第三步凡在我应该以某种方式不采取从谁正在使用OpenID用户的任何密码。这违反了分贝限制。我无法取消约束,因为这会对其他想要注册的用户造成问题。所以我不得不绕过了openID用户的限制。这可能不是最好的解决方案,但它可能会帮助你。 祝你好运!
相关问题
- 1. 什么是一个好的数据库Schema for Forms auth与OpenId?
- 2. 什么是数据库的openID和与注册表
- 3. 在设计数据库时,GUID的使用有什么意义?
- 4. 什么应该是我的数据库设计用户的数据。
- 5. 什么是一些好的OpenID库?
- 6. 什么是考勤数据库的优秀数据库设计(模式)?
- 7. 数据库设计的最佳实践是什么?
- 8. 关系数据库设计的正确形式是什么?
- 9. 以下数据库设计的优缺点是什么?
- 10. 什么是设计这个核心数据库的好方法?
- 11. 什么是ACL的标准数据库表设计?
- 12. 这些数据库表的最佳设计是什么?
- 13. 使用interbase设计数据库表的最佳方法是什么?
- 14. OpenID,Oauth的数据库设计:Twitter和Facebook
- 15. 什么是这种类型的数据的最佳数据库设计
- 16. (数据库设计 - 产品属性):什么是产品属性数据库设计的更好选择?
- 17. OpenID的命运是什么?
- 18. 什么是OpenID中的ClaimedIdentifier?
- 19. 什么是facebook的“openid”url?
- 20. 股市数据的良好关系数据库设计是什么?
- 21. 数据库设计中的EAV模型是什么?怎么运行的?
- 22. 使用parentID的数据库设计
- 23. 数据库设计的使用案例
- 24. 什么使用,而不是数据库?
- 25. 用户数据库使用蒸汽OpenID
- 26. 数据库设计。多对多。什么应该是主键?
- 27. 用户数据的数据库设计
- 28. openid id_token的用途是什么
- 29. 这是正确的数据库设计吗?为什么我不是
- 30. 什么是iChat的设计?
*我想要一个完整的数据库设计* - SO不是其他人编写代码或设计数据库的地方。如果您向我们展示您尝试过的以及您有哪些问题,我们会帮助您做。 – ThiefMaster
投票结束。当你想让某人为你做所有的工作时,这可能是一个太局限的问题。我们在这里要回答具体问题,但这里的大多数人还希望您参与解决方案流程并自己做一些工作。否则,你将永远学不到任何东西 –
谢谢,我不是那个意思。我有我的数据库设计,但我不确定,我想知道我的用户是否有多个OPENDID,我怎么能匹配他们,更重要的是,我怎么知道他是否([email protected])是他([email protected])。这是我的问题。除了要求用户添加他的OpenID还是没有其他办法? – user539656