Мы используем поток 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"
}