Простой вход по электронной почте через deep-ссылки, содержащие имя пользователя

Я хотел бы снизить порог входа в наш школьный форум, используя следующую процедуру:

  1. Ссылки, отправляемые на почту для доступа к (в основном закрытому) форуму, должны содержать имя пользователя адресата (например, forum.my.tld/t/123#user=toka).

  2. Если неавторизованный пользователь открывает такую ссылку, страница предлагает отправить ссылку для входа по кнопке.

  3. При нажатии пользователю должна быть отправлена ссылка для входа с токеном, которая позволит ему открыть целевую страницу без дополнительных действий в течение определённого времени. В противном случае должна быть предложена кнопка «Отправить ссылку для входа повторно».

Реализовано ли это уже где-то?

Если нет: какие существующие механизмы можно использовать для реализации этого?

2 лайка

Вы хотите использовать DiscourseConnect так, чтобы пользователи, вошедшие в вашу систему, также автоматически входили в Discourse.

Настройка DiscourseConnect — официальная система единого входа (SSO) для Discourse

Другой системы нет.
Большинство пользователей пользуются форумом только через почту.

1 лайк

У нас уже есть поддержка входа по электронной почте:

Поэтому автоматизация или упрощение этого процесса вполне осуществимы.

5 лайков

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

Кроме того, мы сталкиваемся с проблемой, когда некоторые пользователи используют в общении неидентичные адреса электронной почты. Например, (at)gmail.com и (at)googlemail.com, или адреса с точками в имени пользователя и без них. Они не помнят, какой адрес электронной почты указывали в регистрационной форме на бумаге (да, извините, это Германия), и либо не знают о таких проблемах, либо не осведомлены о возможности узнать свой «адрес для входа», проверив заголовки своих писем.

Поэтому я изучаю способ, при котором ссылки, отправляемые пользователям, позволяют им войти в систему без необходимости дополнительно разбираться в процедуре входа в Discourse.

1 лайк

Безусловно, существует риск безопасности. Если вы готовы его принять, то автоматизация, генерирующая ссылки, аналогичные тем, что создаются при входе через электронную почту, вполне осуществима, при условии, что у пользователей уже есть учётные записи.

1 лайк

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

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

1 лайк

У меня есть первая рабочая реализация:

Сейчас я пытаюсь научиться добавлять информацию о пользователе ко всем ссылкам на Discourse в уведомлениях.

2 лайка

Эта функция теперь реализована по адресу:

Где лучше задать вопрос о возможности не переопределять основные методы, такие как:

и

для перенаправления на destination_url после входа в систему:

?

1 лайк