Как обращаться с Discourse SSO, когда сайт аутентификации позволяет пользователям менять электронную почту? - PullRequest
0 голосов
/ 24 января 2019

Мы используем поток SSO Discourse, который мы реализовали на основе этого руководства: https://meta.discourse.org/t/official-single-sign-on-for-discourse-sso/13045

Это хорошо сработало для нас. Но теперь мы хотим позволить пользователям в нашей системе изменять свою электронную почту, и это, похоже, приводит к проблемам.

Когда я меняю адрес электронной почты моего пользователя в нашей системе, SSO на Discourse перестает работать.

Ошибка входа

Возникла проблема с вашей учетной записью. Пожалуйста, свяжитесь с сайта администратор.

Я полагаю, что Discourse получает полезную нагрузку с электронным письмом и именем пользователя, которые не совпадают и не знают, что делать.

Какой хороший способ справиться с этим?

Лучшая идея, которую я придумала, - это использовать Discourse API, чтобы изменить адрес электронной почты пользователя в Discourse, чтобы он совпадал с электронной почтой в нашей системе, прежде чем запускать SSO.

Но я не знаю, возможно ли это. Ниже моя неудачная попытка.

Вот мой запрос:

https://forum-stage.{domain}.com/users/{username}/preferences/email

Headers:
Content-Type: application/x-www-form-urlencoded
Accept: application/json

Body (as x-www-form-urlencoded in Postman):
email: testemail@testdomain.com
api_key: 75a...77d
api_username: system

И вот ответ, который я получаю

{
    "errors": [
        "You are not permitted to view the requested resource."
    ],
    "error_type": "invalid_access"
}
...