솔직히 말씀드리면, 이전 두 개의 다른 Wordpress 가입 양식이 문제를 일으킨다고 설명하셨던 내용과 이번 문제 설명이 어떻게 관련이 있는지 약간 혼란스럽습니다. 하지만 그래도 여기서 도움을 드릴 수 있다고 생각합니다.
먼저 이해해야 할 점은, 서로 다른 두 도메인의 두 가지 다른 서비스에 즉시 로그인되어 있을 수 있는 방법이 없다는 것입니다(과거에도 그런 방법은 없었습니다). A 도메인의 A 서비스에 로그인되어 있고, B 도메인의 B 서비스로 이동했을 때에도 로그인되어 있는 것처럼 보이는 경우가 있습니다. 실제로 일어나는 일은 B 도메인을 방문하고 로그인 프로세스가 시작될 때에만 A 서비스를 통해 B 서비스에 로그인된 것입니다. 그 이전에는 아닙니다.
또한 이해해야 할 점은, 세션이 필요한 앱 내 특정 위치로 사용자를 리디렉션하려는 당신이 설명하는 특정 시나리오를 제외하고는, 대부분의 사용자는 B 서비스에서 가끔 "로그인"을 클릭해야 한다는 사실에 신경 쓰거나 알아채지 못한다는 것입니다. 저는 고객과 함께 ID 솔루션을 다루면서 사이트 관리자가 사용자보다 이 문제에 훨씬 더 민감하다는 것을 경험적으로 알고 있습니다.
이것이 작동하는 방식은 변하지 않았습니다. 사용자가 “자동으로” 로그인된 것처럼 보이는 경우, 실제로 일어나는 일은 사용자가 Wordpress로 리디렉션되었다가, Wordpress 세션이 인증되면 다시 Discourse로 리디렉션되는 것입니다. 이미 Wordpress에 로그인되어 있다면, 사용자가 아무것도 할 필요가 없는 리디렉션이 일어나므로 Discourse에 “자동으로” 로그인된 것처럼 보일 것입니다.
“자동” 로그인을 트리거하고 로그인 후 Discourse 내 특정 위치로 리디렉션하는 방법 중 하나는 이미 공유하신 경로를 사용하는 것입니다.
https://community.showprowess.com/session/sso?return_path=[Discourse 내 아무 경로]
이 URL을 사용할 때 사용자가 이미 Wordpress에 로그인되어 있지만 아직 Discourse에 로그인되지 않은 상태라면, 다음과 같은 일이 일어납니다:
- Discourse가 자동으로 DiscourseConnect 로그인 프로세스를 시작합니다.
- 사용자의 브라우저가 Wordpress로 리디렉션됩니다.
- 사용자가 이미 로그인되어 있으므로, 자동으로 Discourse로 다시 리디렉션됩니다.
1에서 사용된 URL에return_path값이 있었다면, 사용자는 해당 위치로 리디렉션됩니다.
사용자의 관점에서는 브라우저가 잠시 로딩되는 것을 볼 수 있지만, 실질적으로 Discourse에 “자동으로” 로그인되고 앱의 특정 부분으로 리디렉션됩니다.
참고로 사이트 설정 discourse connect allows all return paths를 true로 설정하면, return_path를 별도 도메인인 다른 URL로 설정할 수도 있습니다.