Когда пользователь входит через Discord, его каждый раз перенаправляет на страницу авторизации, то есть ему приходится подтверждать разрешение при каждом входе. Насколько я понимаю, это должно быть одноразовым действием при первом подключении входа через Discord к Discourse.
В любом случае, как это исправить? Я следовал документации.
Вы наблюдаете такое же поведение на других сайтах, предлагающих «Войти через Discord»? Если да, то это, скорее всего, ожидаемое поведение системы входа Discord, а не проблема, специфичная для Discourse.
Это не соответствует ожидаемому поведению. На других сайтах и форумах, где я использую вход через Discord, требуется только одноразовая аутентификация. После этого при каждом входе через Discord вы автоматически попадаете в систему, не переходя на страницу авторизации.
Интересно, не связано ли это с отсутствием параметра prompt со значением none в URL авторизации?
prompt определяет, как процесс авторизации обрабатывает существующие авторизации. Если пользователь ранее авторизовал ваше приложение с запрошенными областями доступа, а параметр prompt установлен в consent, ему будет предложено повторно подтвердить авторизацию. Если установлено значение none, экран авторизации будет пропущен, и пользователь будет перенаправлен обратно на ваш URI перенаправления без запроса авторизации.
в этот файл и пересобрать систему, чтобы проверить, исправит ли это проблему.
Редакция: При более тщательном размышлении я понимаю, что не смогу найти файл, который позволил бы мне внедрить это изменение. Думаю, для того чтобы это работало как задумано, необходимо исправление со стороны разработчиков Discourse.
Круто. Нужно ли мне что-то ещё сделать (кроме ожидания обновления)?
Я предполагаю, что точных сроков исправления в данном случае нет, и это, скорее всего, зависит от приоритета задачи. Это, наверное, лишь небольшое неудобство. Но было бы здорово, если бы это исправили!
Идея добавить prompt=none мне кажется хорошей. Если кто-то сможет написать код, протестировать его и создать pull request, это ускорит внесение изменений.
Релевантный файл — этот, но я пока точно не знаю, какие именно изменения потребуются.
Всё ещё перенаправляет на страницу авторизации Discord, однако пользователю больше не нужно нажимать «Разрешить». Страница перезагружается, после чего вы возвращаетесь на свою страницу Discourse.
Один шаг вперёд, один шаг назад.
Редактирование: Вижу, что @Arkshine и я протестировали изменение и получили тот же результат.
Даже с этим изменением вас всё равно перенаправляет на страницу аутентификации Discord, чего не должно происходить (хотя в этот раз вам не нужно вручную нажимать authenticate).
К сожалению, отправка PR с предложенным изменением не решит проблему.