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

php – 将Open ID与我当前的登录系统合并?

发布时间:2020-12-13 17:01:56 所属栏目:PHP教程 来源:网络整理
导读:我目前正在我的网站上设置Open ID身份验证,我在将其与我当前的登录系统和数据库相结合时遇到了麻烦……我已经阅读了 Plaxo它推荐这种类型的表来存储openid信息…… create table user_openids ( openid_url varchar(255) not null,primary key (openid_url),
我目前正在我的网站上设置Open ID身份验证,我在将其与我当前的登录系统和数据库相结合时遇到了麻烦……我已经阅读了 Plaxo&它推荐这种类型的表来存储openid信息……

create table user_openids (
  openid_url varchar(255) not null,primary key (openid_url),user_id int not null,index (user_id)
);

这是我当前的用户信息表

Userid(PRIMARY) | username(UNIQUE) | password | Email

Userid用于引用注释,评级等的用户详细信息(因此它作为用户标识符进入评论表和评级表)

我想要一个类似于Stack overflow使用你的Open ID登录的系统,它给你一个未知的(OPENID-provider)显示名称….同时保持我当前的登录系统完好无损.
1)如何在不影响当前登录设置的情况下,将用户的Open ID详细信息添加到当前用户信息表中?
2)目前我使用User-id(为每个用户生成唯一的)来存储在会话中以维护登录.如果是Open ID,我现在该怎么办?

*我的想法(我不知道我是不对的)
– 添加一个open-id字段来存储每个用户的open id提供者提供的唯一open id url,并为非open-id-users设置为null.
– 将User-id设为文本字段并存储打开的id url的md5.(将其存储在会话中以维护登录).
– 我不知道如何处理为每个用户设置为唯一的Display-name / Username,因为我想显示未知(OPENID_provider)(对于使用open-id的用户),可以从配置文件设置中更改. .

任何建议都会有所帮助….谢谢

解决方法

您展示的表格布局的想法是拥有1:来自用户的许多:openids.

因此,不需要对用户表进行任何更改.

当有人使用OpenID登录时,您检查该OpenID是否在openids表中.如果是这样,您拥有用户的user_id并且您已完成.

否则创建一个新用户(没有设置用户名/密码)并在openids表中插入(openid,user_id)对.

您的模板可以显示任何好的占位符(例如他们的OP或其他),它通常显示用户名为空的用户的用户名.

希望您已经禁止使用空白密码登录,因此应该没有安全问题.

(编辑:李大同)

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

    推荐文章
      热点阅读