2009-06-23 2 views

답변

2

계정 테이블을 사용하여 로컬 계정 데이터를 보관하는 것이 좋습니다. 그런 다음 관련 외부 인증 정보를 보유 할 AthenticationMethods 테이블이나 Credentials 테이블과 관련이 있습니다. 이를 통해 귀하의 사이트와 그 모든 것들이 계정 및 로그인 프로세스와 관련되어있어 지원하고자하는 다양한 인증 형식을 멋지게 추상화 할 수 있습니다. 각 인증 방법마다 다른 수준의 복잡성이있을 수 있으므로 여러 가지 API를 살펴보고 공통된 유사점을 찾기 위해 모든 API를 교차 참조하는 것이 좋습니다. 더 중요한 점은 각 API가 요구할 수있는 다양한 데이터 비트를 자격 증명 테이블에서 처리 할 수 ​​있도록 서로 다른 위치를 찾고 싶을 것입니다. OpenID를 포함하는 것을 잊지 마십시오!

0

로컬 계정이나 사용자 테이블에서 두 개의 필드를 사용합니다. 하나는 "externalSystemId"(TINYINT)이고 다른 하나는 "externalId"(DOUBLE)입니다. 다양한 externalSystemId 값을 정의하는 몇 가지 코드 상수가 있습니다. EXTERNAL_SYSTEM_FACEBOOK = 1, EXTERNAL_SYSTEM_OPENID = 2 등. 물론 externalId는 해당 시스템의 사용자 ID입니다.

코드에서 User 객체를 처리하는 동안 사용자가 어떤 시스템을 사용하고 있는지 쉽게 확인할 수 있으며 externalSystemId를 기반으로 시스템에 적합한 것을 인증하거나 표시하기위한 적절한 코드 메커니즘을로드 할 수 있습니다.

처리 할 사용자 수와 시스템에 대한 추가 정보가 필요한지 여부에 따라 코드 상수가 아닌 외부 시스템 레코드를 저장하기 위해 데이터베이스 테이블을 사용할 수 있습니다.

0

"로그인"이외의 다른 정보, 즉 "비밀번호"를 저장 하시겠습니까? 사용자가 어떤 로그인 시스템을 저장하는지 열거 할 것을 권장합니다.

관련 문제