php - 第三方登陆表的设计问题
習慣沉默
習慣沉默 2017-05-16 13:07:14
0
2
810

一个用户表
id name
然后每一种第三方就新增一个表
ex 微信
id openid uid(主用户表id) .....

QQ
id openid uid

这样用户用不同的第三方就会有不同的账号 一个用户就拥有了多个账号了
如何实现数据互通呢 比如微信登陆 可以绑定QQ 那么以后微信和QQ的信息就同步了

習慣沉默
習慣沉默

모든 응답(2)
習慣沉默

여러 가지 방법이 있습니다:
첫 번째, 중복 필드
사용자 테이블 사용자: id 이름 전화 이메일....
제3자 로그인 테이블 로그인: id uid wxopenid qqopenid...
생성되면 ''을 제공하고 업데이트합니다. 나중에 바인딩할 때 관련 필드.
테이블 분할의 두 번째 유형
사용자 테이블: 사용자: id 이름 전화 이메일....
제3자 테이블: openid: id wx_openid qq_openid....
관계 테이블 관계: uid oid 여기서 oid는 세 번째- 파티 테이블
이 디자인의 목적은 데이터가 너무 많으면 조인 작업에 시간이 많이 걸리기 때문에 조인 작업의 필요성을 없애는 것입니다. 코드 논리 계층에서는 먼저 현재 기록된 관계의 oid를 얻습니다. -in uid를 선택한 다음 openid 테이블에서 관련 데이터를 선택합니다.

한 테이블에 모두 올려 놓는 것은 권장하지 않습니다. . .

左手右手慢动作

1. 테이블을 사용하면 안 되는 이유는 무엇입니까? 테이블에는 유형과 유사한 필드가 있는데, 이는 어떤 종류의 타사 로그인이 사용되는지를 나타냅니다.

2. 서로 다른 두 명의 제3자로 로그인하면 실제로 두 개의 계정이 생성됩니다. 지금 이 두 계정을 병합하려면 어떤 데이터를 사용해야 하는지가 더 복잡해지고 복잡해집니다. 물론 이렇게 할 수도 있으며, 최악의 경우 해당 정보가 동시에 여러 계정으로 전송될 수 있습니다.

일반적인 아이디어는 먼저 계정을 갖는 것입니다(계정 소스는 일종의 제3자 로그인, 이메일 등록, 휴대폰 등록일 수 있음). 어쨌든 계정이 있어야 하며 그 후에 새로운 제3자 계정을 바인딩해야 합니다. 로그인 중입니다. SF 계정 설정 /user...

를 매개변수화할 수 있나요?

업데이트, 하나의 테이블에 여러 타사 로그인을 유지하는 것에 대한 개인적인 이해
테이블 필드 - oauth 테이블
id // 자동 증가 가능
type // wx, qq, weibo 등 가능
user_id, // 사용자에 해당합니다. // mysql-text 유형의 id
데이터는 json 형식이거나 PHP의 직렬화 형식을 사용할 수 있습니다. 다른 유형에 해당하는 json 형식을 권장합니다. 데이터 읽기 및 저장은 차이가 없습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿