第三方登录功能在网站与APP上使用比较多,大家常用的就是QQ、微信、微博这三种。当然在某些大型互联网公司的网站上也使用了第三方登录功能,这里的第三方是指统一登录。
什么是第三方登录
好了,不多说,我们直接进入正题。第三方登录的设想是:在整个互联网上,用户都有一个唯一id与之匹配,用户使用这个唯一id即可在互联网上区分。然而由于某些利益关系,这个方案在目前的互联网中无法推行,因此产生了以三大社交平台为主,诸多其它平台为辅的第三方登录。
如何结合WordPress实现
前面提到,要想在互联网上登录,必须取得唯一id,由于各个社交平台不互通,所以这个唯一id就变成了各个社交平台的“唯一id”。
QQ互联:https://connect.qq.com
微信开放平台:https://open.weixin.qq.com
微博开放平台:https://open.weibo.com
为了取得各个社交平台的唯一id,我们需要得到对应平台的授权,他们同意了,才能请求数据。所以我们需要到上面的三个平台中添加你要实现第三方登录的网站或者APP信息,我们这里是网站。然后提交等待审核,当审核通过后,我们才能进行下一步的唯一id获取。
本文主要是讲解第三方登录的实现原理,并不是实现过程,所以具体怎么获取到唯一id这里先不讲,等疫情过去后,再讲(主要是忘了带电脑回家,手机编辑的文章)。
诸位站长都知道,WordPress网站的用户必须包含用户名、用户邮箱、用户密码。那么添加了第三方登录功能的网站,就应该新增几个字段,分别用来存储对应的开放平台唯一id。
对于已有WordPress账号绑定第三方登录账号的时候,我们只需将对应的唯一id保存下来就行了。
对于没有WordPress账号的用户,使用第三方登录的时候就需要为其新建账号,下面举个例子。
当我使用QQ第一次登录WordPress网站时,网站应该做如下动作。
- 用户扫码或者通过点击登录后,取得对应平台的唯一id,这里取得QQ平台的唯一id,注意,不是QQ号!
- 查询用户数据表,这里查询标准可以自己定,比如我为了区分是哪个平台的账号,就在唯一id前加上那个平台,我这里就查询qq_唯一id。
- 如果用户存在,那就使用wp_set_current_user($user_id);函数,让这个用户处于登录状态,如果不存在,就继续进行创建账号。
- 创建一个用户名为qq_唯一id的用户,注意,这里用户名要与前面查询时的用户名结构一致。由于第三方登录不提供邮箱,所以我们这里为其构造一个具有一定规律,方便我们识别的假邮箱,然后再创建一个随机密码即可。
- 将前面准备的用户数据插入用户数据表,并使用wp_set_current_user($user_id);函数将其设置为登录状态,并跳转到用户中心。
经过前面5个步骤,使用第三方登录功能就完成了。第三方登录不需要修改密码,因为修不修改都没意义。
整个第三方登录流程就是这样,等我上班了会写几篇各个社交平台的登录实例给大家看看,目前先了解下实现过程,免得到时候看不懂。
评论 (3)