문제

나는 Sinatra, Datamapper로 제작하는 기본 Ruby 앱을 가지고 있으며 Oauth를 사용하여 사용자 인증을 가지고 있습니다. OAUTH 서비스에서 데이터를 다시 받으면 SQLITE3 DB에 새 사용자의 레코드를 저장합니다.

내가하는 방법을 모르는 것은 사용자 데이터베이스 테이블에 아직 사용자 레코드를 확인하는 방법입니다. 사용자의 고유 한 ID (UID)를 사용하여 UID가 이미 저장되어 있는지 여부를 교차 점검 할 수 있지만 어디에서 해야할지 잘 모르겠습니다.

나는 2 개의 수업이 있고 a /콜백 노선. 그만큼 사용자 클래스는 DB 모델이고 an 입증 클래스는 Oauth에 연결하는 방법을 분류했습니다. /콜백 인증 방법이 호출되는 경로.

내에서 기존 레코드를 확인해야합니까? 인증 방법과 부울이나 다른 것을 반환합니까? 새로운 메소드를 만듭니다 입증 그것은 Authentication.exists와 같습니까? (그리고 그게 어떻게 생겼습니까?) /콜백 노선?

이것이 100% 명확하지 않으면 사과드립니다. 제 문제를 설명하는 데 어려움을 겪고 있으며 절대 루비 초보자입니다 ...

도움이 되었습니까?

해결책

새 사용자를 생성하기 직전에 동일한 로그인 및 이메일을 가진 사용자 (예 :)가 있는지 확인해야합니다.

require 'dm-aggregates'

user=User.new
user.login=your_login_data_returned_by_oauth
user.email=your_email_data_returned_by_oauth
# And so on...
user.save if User.count(:login=>user.login, :email=>user.email) == 0
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top