제가 전달하려는 내용을 이해하지 못하고 계신 것 같습니다. 로그인 후 Discourse에서 사용자 정보를 가져오는 방법에 대해 묻는 것이 아닙니다. 제가 달성하려는 전체 흐름을 이해해 주시고, 이것이 Discourse로 가능한지 아니면 제가 직접 개발한 방식으로 진행해야 하는지 알려 주시기 바랍니다.
현재 Laravel 프레임워크로 구축된 프로젝트가 있으며, 사용자에게 피드백을 위해 Discourse 포럼에 대한 접근 권한을 제공하고자 합니다. 저는 Discourse에 SSO 로그인을 구현하기로 결정했습니다. Discourse 관리자 계정을 생성하고 SSO 로그인을 위한 필요한 설정을 활성화했습니다. 여기에는 SSO 활성화, 리다이렉트 URL 설정, 시크릿(secret) 구성 등이 포함됩니다.
현재 프로젝트 내에 ‘Discourse Connect’ 버튼을 추가했습니다. 사용자가 이 버튼을 클릭하면 제 프로젝트의 자격 증명으로 등록하거나 로그인한 뒤, 자동으로 Discourse에 로그인되기를 원합니다. 사용자가 ‘Discourse Connect’ 버튼을 클릭하면 제 기본 커뮤니티 URL의 session/sso 엔드포인트로 리다이렉트되고, 다시 제 Discourse Connect URL로 돌아옵니다. 요청에서 SSO와 sig 매개변수를 수신하며, 이것이 검증 용도임을 이해하고 있습니다. 하지만 Discourse에 사용자를 로그인시키기 위해 데이터베이스에서 사용자 데이터를 가져와서 검증하고 인증하려면 user_id 또는 기타 식별자가 필요합니다.
제 질문은 다음과 같습니다: 요청에서 SSO와 sig 매개변수와 함께 user_id를 반환할 수 있는 Discourse의 API나 메커니즘이 있습니까? 이는 매우 중요합니다. 요청에서 사용자 데이터를 가져오지 못하면 사용자에게 다시 로그인을 요구해야 하며, 이는 좋지 않은 사용자 경험을 초래합니다. 본질적으로, 사용자가 제 프로젝트에 로그인한 후 ‘Discourse Connect’ 버튼을 클릭하면 Discourse Connect URL이 트리거되고 SSO와 sig 매개변수를 수신합니다. 사용자를 인증하려면 데이터베이스에서 사용자 데이터를 가져와야 하는데, 이를 위해 사용자에게 다시 로그인을 요구하는 것은 피하고 싶습니다.
사용자가 이미 한 번 로그인한 상태라면 다시 로그인할 필요가 없는 매끄러운 경험을 원합니다. 사용자는 프로젝트 자격 증명을 사용하여 직접 Discourse 포럼에 접근할 수 있어야 합니다.