近期我們對(duì)線上的WordPress主題社交登錄功能做了一項(xiàng)更新:

優(yōu)化QQ登錄字段保存方式:openid改為unionid,需要前往QQ互聯(lián)應(yīng)用接口里面獲取權(quán)限;

此項(xiàng)更新需要前往QQ互聯(lián)獲取接口權(quán)限,否則會(huì)出現(xiàn)100048、CompanyID not set的錯(cuò)誤,如下圖:

QQ登錄出現(xiàn)CompanyID not set的解決辦法

解決辦法

進(jìn)入QQ互聯(lián)應(yīng)用管理,查看需要設(shè)置的應(yīng)用,在應(yīng)用接口下面找到unionid,沒(méi)有獲取的話獲取一下接口權(quán)限,如圖:

QQ登錄出現(xiàn)CompanyID not set的解決辦法

為什么要修改成unionid

保存方式改成unionid的目的是為了更好的兼容同一個(gè)帳號(hào)的多端登錄身份識(shí)別的問(wèn)題,舉個(gè)栗子:

目前您是網(wǎng)站,申請(qǐng)的是網(wǎng)站應(yīng)用接口,如果后續(xù)您想給網(wǎng)站增加APP端,需要再申請(qǐng)一個(gè)移動(dòng)應(yīng)用,那么如果使用openid的話,同一個(gè)QQ用戶在兩個(gè)應(yīng)用登錄后返回的openid是不一樣的,這就導(dǎo)致同一個(gè)QQ用戶不同端登錄后是不一樣的帳號(hào)。

而使用unionid后,除了返回之前的openid外,還會(huì)額外再返回一個(gè)unionid,這個(gè)unionid在同一個(gè)開(kāi)發(fā)者下面的不同應(yīng)用返回的值都是一樣的,這就可以很好的解決了多端登錄用戶身份統(tǒng)一識(shí)別的問(wèn)題。而使用unionid后,除了返回之前的openid外,還會(huì)額外再返回一個(gè)unionid,這個(gè)unionid在同一個(gè)開(kāi)發(fā)者下面的不同應(yīng)用返回的值都是一樣的,這就可以很好的解決了多端登錄用戶身份統(tǒng)一識(shí)別的問(wèn)題。

同時(shí)考慮到目前QQ也推出了小程序,為方便后續(xù)可能面臨的帳號(hào)對(duì)接問(wèn)題,統(tǒng)一開(kāi)啟unionid是比較推薦的做法。