SSO를 통해 로그인한 사용자의 언어를 설정하는 방법을 알고 싶습니다. 사용자가 처음 접속할 때 “locale” 키를 사용해보았지만, 작동하지 않았습니다. “locale” 키는 사용자가 익명일 때만 작동하는 것 같습니다.
안녕하세요 @Ankur_Tyagi
메타에 오신 것을 환영합니다 ![]()
이 게시물이 도움이 될 것입니다. 두 가지 매개변수가 필요합니다.
Discourse에 로그인해 본 적이 없는 새 사용자의 경우, 사용자가 사이트에 처음 로그인할 때 페이로드에 locale 매개변수가 설정되어 있다면 작동해야 합니다. 예를 들어, 링크해 주신 npm 문서를 사용하는 경우:
var userparams = {
// 필수, 그렇지 않으면 예외가 발생합니다
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// 선택 사항
"username": "some username",
"name": "some real name",
"locale": "es"
};
이미 Discourse에 계정이 있는 기존 사용자의 경우, userparams에 locale_force_update 매개변수를 추가하여 true로 설정해야 합니다. 귀하의 경우를 고려할 때, 새 사용자를 만들 때와 사용자를 업데이트할 때 모두 locale_force_update 매개변수를 포함할 수 있다고 생각합니다:
var userparams = {
// 필수, 그렇지 않으면 예외가 발생합니다
"nonce": nonce,
"external_id": "some user id here",
"email": "some user email",
// 선택 사항
"username": "some username",
"name": "some real name",
"locale": "es",
"locale_force_update": true
};
불행히도, DiscourseConnect 페이로드를 통해 로케일 또는 기타 속성을 _업데이트_하려면 사용자가 Discourse에서 로그아웃한 후 다시 로그인해야 합니다. 이는 사용자가 업데이트된 로케일을 즉시 받지 못할 가능성이 높다는 것을 의미합니다. 이에 대한 우회 방법이 있지만, discourse-sso npm 패키지로 처리되지 않는다고 생각합니다. 사용자가 로그아웃하고 다시 로그인하지 않고도 DiscourseConnect를 통해 사용자를 업데이트하려면 sync_sso 루트에 호출을 해야 합니다. 자세한 내용은 여기에 있습니다: Sync DiscourseConnect user data with the sync_sso route.
새 사용자나 로케일 매개변수를 추가한 후 로그아웃하고 다시 로그인하는 사용자에게 로케일을 올바르게 설정하는 데 문제가 있다면, verbose discourse connect logging Discourse 사이트 설정을 활성화해 보세요. 그러면 사이트의 /logs 페이지(관리자 / 로그 / 오류 로그에서 찾을 수 있음)에서 Discourse로 전송되는 매개변수를 확인할 수 있습니다.
안녕하세요 @Lilly
답변 주셔서 감사합니다.
새로운 사용자로 시도해 보기도 하고 기존 사용자의 로케일을 업데이트해 보기도 했지만, 작동하지 않았습니다. 익명 사용자의 경우에만 작동하는 것 같습니다. 로그인한 사용자를 위한 해결책을 찾고 있습니다.
아래 설정 구성 세부 사항을 검토해 주시면 감사하겠습니다. 수정해야 할 부분이 있을 수 있지만, 정확히 무엇인지 확신이 서지 않습니다.
- Discourse 포럼 버전: Discourse 3.2.0.beta1-dev
- SSO에 사용된 JS 패키지: discourse-sso (버전: 1.0.5)
- Discourse 패키지 링크: discourse-sso - npm
@Ankur_Tyagi 여전히 문제가 발생하고 있어 죄송합니다. Simon의 locale_force_update 파라미터 사용 조언을 확인해 보셨나요? SSO에 대해 제가 아는 것은 대부분 @simon 님에게서 배운 것입니다 ![]()
@simon 님이 게시한 이 정보와 공식 DiscourseConnect SSO How-To 링크도 주의 깊게 살펴보세요.
verbose discourse connect logging 설정과 로그는 이 문제를 해결하는 데 도움이 될 수 있습니다:
Lilly님, 감사합니다. 이 해결책을 시도해 보겠습니다.
