0

레일 서버에서 devise 인증을 사용하고 있습니다. 이제는 iOS 앱이 facebook에 로그인하여 액세스 토큰과 사용자 정보를 얻고 서버에 보낼 데이터가 무엇인지 혼란 스럽습니다. 사용자를 저장해야합니다. 이 문제를 처리하려면 별도의 논리를 사용해야합니까? 나는 이것에 익숙하지 않고 서버에 무엇을 보내야하고 사용자를 어떻게 저장해야하는지 말해줘. 전자 메일 등록의 경우 전자 메일과 암호를 보내고 사용자를 등록 할 수 있지만이 방법은 무엇입니까? 그들이 나에게 비밀 번호 또는 비밀 번호 확인을 보내지 않을 수도 있습니다.레일즈 서버에있는 ios app에서 보낸 사용자를 등록하거나 저장하는 방법은 무엇입니까?

도와주세요.

답변

0

iOS 클라이언트에서 페이스 북에 로그인하면 facebook_access_token이 표시됩니다. 따라서 facebook_access_token을 서버에 전달하면됩니다.

서버 측에서 facebook_access_token을 사용할 수 있으며 개인 정보 설정에 따라 Facebook의 Facebook UID와 함께 필요한 프로필 세부 정보를 얻을 수 있습니다.

facebook_access_token을 사용하고 필수 프로필 세부 정보 및 UID을 얻고 이러한 세부 정보로 사용자를 등록하고 사용자 테이블에 UID를 저장하는 것을 잊지 마세요.

omniauth_facebook을 사용해보세요. 만약 당신이 devise를 사용하고 있다면, 당신은 또한 this blog을 참조하십시오.

+0

나는 이해할 수 있지만 그 특별한 논리에 대해 좀 더 설명해 주시겠습니까? 사실 사용자 모델이있을 것이고 암호와 다른 필드가 필요하므로 어떻게 암호 없이도 이러한 것들을 저장할 수 있습니다. 또는 나는 트위터에서 전자 메일에 액세스 할 수 없으므로 해당 사용자의 전자 메일을 저장하는 방법에 대해 읽은 적이 있습니까? – logesh

+0

이메일을 보내면 프로필 이메일을받을 수 있으므로 문제가되지 않습니다. 그러나 암호에 대해 기본 암호를 가질 수도 있고 uid가없는 경우에만 암호 존재 여부를 확인할 수도 있습니다. 그리고 당신이 인증을 위해 devise를 사용한다면 당신은 devise와 omniauth를 시도 할 수 있습니다. – user2801

+0

좋아, 한 가지 더, 아이폰 앱 자체가 토큰을 얻고 사용자 정보를 얻는다면 왜 그런 정보를 보내야하지 ​​않는가? 이것이 시나리오라면 어떻게 처리 할 수 ​​있습니까? 그리고 당신 같은 사람에게 와서, 만약 내가 omniauth를 사용한다면, 사용자는 어떻게 가입 할 것이며, 어떤 매개 변수를 보내고 등록 후에 어떻게 로그인 할 것인가? – logesh

관련 문제