사용자 모델에 열린 인증 인증을 추가 할 때 테이블 구조는 어떻게 생겼습니까?
-
05-07-2019 - |
문제
사용자 모델이있는 Rails 앱이 있습니다. 사용자가 소수의 서비스로 로그인 할 수 있도록하고 싶습니다. 데이터베이스에 이것을 저장할 수있는 두 가지 방법이 있지만 어느 것이 가장 좋은지 잘 모르겠습니다. 사용자가 하나 이상의 서비스에 연결하고 계정을 연결할 수 있기를 원합니다.
방법 1 :각 서비스마다 사용자 테이블에 토큰/비밀 필드를 추가하십시오. 예를 들어 Twitter Token, Twitter Secret, Twitter Screename 및 Twitter 프로필 IMG를 저장하려면 조금 문제가있는 것 같습니다. 사용하지 않은 열이 많은 사용자 테이블을 볼 수있었습니다. 각 서비스마다 저장하려는 추가 정보가있을 수 있습니다. 다음과 같이 보일 것입니다.
id
twitter_token
twitter_screenname
twitter_secret
twitter_pic
facebook_token
facebook_secret
facebook_pic
facebook_name
google_token
google_secret
google_name
etc.
방법 2 :
또는 각 사용자가 많은 소셜 로그인을 가질 수 있으며 각 소셜 로그인은 한 명의 사용자에게 속합니다. 그런 다음 나는
user_id
token
secret
social_type # foreign key to a social_site look up table
social_pic
그리고 소셜 유형 테이블은 다음과 같은 것처럼 보일 것입니다.
id
social_site_name
oauth_url
이 접근법의 유일한 부정적인 것은 모든 서비스에 대해 저장할 내용을 일반화해야한다는 것입니다. 너희들은 어떻게합니까? 아마도 STI는 여기에 순서대로있을 수 있습니다 ... 기본 로그인 클래스에서 상속되는 각 유형의 로그인에 대한 클래스가있을 수 있습니다.
감사!
제휴하지 않습니다 StackOverflow