소셜 로그인 구현을 위한 데이터베이스 구조?
제 애플리케이션에는 다음과 같은 구조를 가진 "사용자" 테이블이 있습니다.
CREATE TABLE IF NOT EXISTS `users` (
`userId` int(10) unsigned NOT NULL auto_increment,
`username` varchar(128) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
`email` text NOT NULL,
`newsletter` tinyint(1) NOT NULL default '0',
`banned` enum('yes','no') NOT NULL default 'no',
`admin` enum('yes','no') NOT NULL default 'no',
`signup_ip` varchar(20) NOT NULL default '',
`activation_key` varchar(60) NOT NULL default '',
`resetpassword_key` varchar(60) NOT NULL default '',
`createdon` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`userId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;
Facebook, Twitter, Open을 통한 소셜 로그인을 구현하고 싶습니다.스택 오버플로와 마찬가지로 내 응용 프로그램의 ID입니다.
저는 당신이 그 개념을 소개하는 것을 제안하고 싶습니다.AuthenticationProvider
:
CREATE TABLE IF NOT EXISTS `AuthenticationProvider` (
`ProviderKey` varchar(128) NOT NULL,
`userId` int(10) unsigned NOT NULL,
`ProviderType` enum('facebook','twitter', 'google') NOT NULL,
PRIMARY KEY (`ProviderKey`) )
ENGINE=MyISAM DEFAULT CHARSET=latin1;
각 로그인 공급자는 사용자에게 고유한 키를 제공합니다.저장 위치ProviderKey
.그ProviderType
이 로그인 공급자에 대한 정보가 포함되어 있습니다.ProviderKey
에 속하며, 마지막으로,userId
열은 정보를 다음과 결합합니다.users
표. 그래서 당신이 로그인 제공자 중 하나로부터 성공적인 로그인을 받으면 당신은 그에 상응하는 것을 발견합니다.ProviderKey
표에서 해당 사용자에 대한 인증 쿠키를 설정합니다.
저는 당신이 그것을 원하는지 잘 모르겠습니다.ProviderType
…이 되는enum
이것들을 담을 수 있는 다른 테이블을 만드는 것이 아마도 더 정확할 것입니다.
예를 들어, 사용자가 처음으로 사이트에 등록하고 Facebook을 통해 로그인할 때, 당신은 다음에서 행을 만들어야 합니다.users
테이블. 그러나, 없을 것입니다.password
,activation_key
그리고.resetpassword_key
관련된.따라서 이러한 필드를 별도의 테이블로 이동하여 다음을 수행할 수 있습니다.users
테이블에는 핵심 사용자 데이터만 포함되며 단일 로그인 메커니즘(암호/암호)에만 관련된 데이터는 포함되지 않습니다.
이것이 이치에 맞고 올바른 방향을 가리키기를 바랍니다.
/클라우스
언급URL : https://stackoverflow.com/questions/4793302/database-structure-for-social-login-implementation
'source' 카테고리의 다른 글
쉬운 zlib 튜토리얼에는 어떤 것들이 있나요? (0) | 2023.07.23 |
---|---|
Oracle SQL 구문 - 여러 열에서 ISNOT NULL을 확인합니다. (0) | 2023.07.23 |
딕트를 OrderedDict로 변환하는 중 (0) | 2023.07.18 |
Tkinter 텍스트 위젯에서 입력을 가져오는 방법은 무엇입니까? (0) | 2023.07.18 |
Firebase 비동기 대기 스타일을 위한 클라우드 기능 (0) | 2023.07.18 |