2

레일스 앱에서 Google의 멀티 로그인을 어떻게 모방합니까? 본질적으로, 사용자가 두 개 이상의 전혀 다른 링크가 해제 된 계정에 로그인 할 수 있고 매번 로그 아웃하지 않고 매번 전환 할 수 있어야합니다. 사용자는 사용하려는 각 계정마다 사용자 이름과 비밀번호로 인증을 받아야하지만, 이후 세션 만료 시까 지 해당 계정에 대해 다시 로그인 할 필요가 없습니다.레일 및 Devise로 멀티 로그인 구현

Google의 구현에서 추측 할 수있는 post을 보았습니다.하지만 Rails 3.1에서이 문제를 해결하는 가장 좋은 방법에 대한 힌트를 얻고 싶습니다. 나는 CAS plugin과 함께 Devise를 사용하고 있습니다. 올바른 계정을 선택하려면 current_user 메서드를 재정의해야한다고 가정하지만 그 밖의 작업을 수행 할 것인지 잘 모르겠습니다.

아니면 여기에 스코프를 사용할 수 있습니까? 그러나 문제는 내가 동시에 로그인 한 임의의 수의 계정이 필요하다는 것입니다.

답변

1

Devise는 기본적으로이 작업을 수행하지 않으므로 직접 구현해야합니다. 이 문제를 해결하기위한 최선의 방법은 로그인 한 사용자의 ID로 서명 된 쿠키 (cookies.signed)를 유지하는 것입니다.

기본적으로 사용자가 로그인 할 때마다 쿠키에 ID를 추가합니다. 아직없는 경우 (사용자가 로그인 할 때마다 관리자 콜백이 있음).

이제 ID가 생기면 Google과 같이 구석에 로그인 한 이름을 표시 할 수 있습니다. 사용자가 구석에있는 이름 중 하나를 클릭하면 ID가 서버로 전달되고 ID가 서명 된 쿠키에 있는지 확인한 다음 컨트롤러에서 sign_in 메소드를 사용하여 새 사용자로 전환합니다.