Регистрация для пользователей без аккаунта Facebook

Я хочу включить must_approve_users, чтобы пользователи проходили квалификацию для вступления в сообщество, но при этом хочу, чтобы участники Facebook автоматически проходили эту квалификацию (обычно это происходит из-за ссылки на мой сайт Discourse, которую я публикую в Facebook). Я понимаю, что must_approve_users применяется глобально. Есть ли плагин, который позволит мне этого достичь?

Спасибо,
Дэн

4 лайка

Привет,

На данный момент, насколько мне известно, нет плагина, который бы это реализовывал. Ранее существовал обходной путь: можно было делиться ссылкой-приглашением, которая отменяла необходимость одобрения, но меры безопасности вокруг этого были ужесточены. Подробнее см. по ссылке: Why do I need to still approve users that I have invited?

Стоит проголосовать за запрос на изменение этой функциональности:

Также, возможно, стоит посмотреть на плагин Custom Wizard :mage: и проверить, может ли он помочь.

И наконец, можно рассмотреть вариант с настраиваемым полем пользователя и плагином Discourse Automation, но это будет А) небезопасно, так как люди могут просто указать ложные данные в поле пользователя, и Б) вам всё равно придётся написать новый скрипт для плагина.

3 лайка

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

  1. По мере роста популярности Facebook активность на моём форуме снизилась до минимума. Я твёрдо убеждён, что бороться с ними невозможно, поэтому лучше присоединиться к ним. Насколько это возможно, я интегрирую свой форум с Facebook и продвигаю его там, что позволяет привлекать больше трафика. На моём форуме phpBB это уже подтвердилось: пользователи Facebook могут мгновенно регистрироваться, используя свои учётные данные Facebook, без необходимости утверждения или приглашения.

  2. Изначально для обеспечения интеграции с Facebook мне пришлось разрешить регистрацию на phpBB без утверждения, и я был завален спам-регистрациями не от Facebook. Я восстановил требование об утверждении для всех, кроме пользователей Facebook (от которых спама не поступало), дополнительно модифицировав код.

Я не считаю, что привлечение регистраций от тысяч единомышленников-автомобилистов на Facebook — это решение для форума вроде моего. Вместо этого нужно сделать максимально простым автоматическую регистрацию для тех, кто заходит на форум. Однако phpBB устарел, и Discourse, на мой взгляд, — это путь вперёд, с аналогичными правилами регистрации. Поэтому я и обращаюсь с этой просьбой.

Я больше хакер, чем программист, и не хочу публично выкладывать свои изменения в GitHub. Но если мне удастся заставить мой плагин для автоматического одобрения регистраций через Facebook в Discourse работать в локальном репозитории git, я с радостью поделюсь им как отправной точкой.

Спасибо,
Дэн

4 лайка

Я скорее хакер, чем программист, и мне не очень хочется выкладывать свои изменения публично в GitHub. Но если мне удастся заставить мой плагин discourse-facebook-autoapprove работать в локальном git-репозитории, я с радостью поделюсь им как отправной точкой.

Мне (с помощью Claude) удалось разработать однофайловый Ruby-плагин, который работает. Как только пользователь разрешает обмен информацией в Facebook — при запросе входа в Discourse через Facebook — учётная запись в Discourse создаётся, и пользователь автоматически входит в систему. Пользователи, не использующие Facebook, остаются под действием настройки «Требовать одобрения пользователей».

Поскольку я разрабатывал его с использованием локального git-репозитория, потребовались некоторые изменения в app.yml для ссылки на git. Я не хочу нарушать этикет, поэтому не буду раскрывать детали здесь — но с радостью поделюсь ими с любым, кто захочет подхватить эту идею и развить её.

Спасибо,
Дэн

2 лайка

Мне очень хочется взглянуть на ваш репозиторий и попробовать его в деле, так как мы скоро окажемся в похожей ситуации.

Какие у вас опасения по поводу публикации кода? Мне бы тоже очень хотелось посмотреть, можно ли его модифицировать или расширить, чтобы другие пользователи (например, использующие Google Auth, Microsoft Auth, LinkedIn и т. д.) тоже могли пропускать очередь на утверждение.

1 лайк

У меня нет никаких опасений, @nathank! Я с радостью поделюсь, просто не хотел поступить неуместно.

Мне отправить это вам лично для проверки, а не публиковать здесь?

Спасибо!
Дэн

Если вам не сложно, просто отправьте мне это в сообщении.

Будете ли вы не против, если я размещу это на github.com (с указанием или без указания вашего авторства, как вы предпочитаете), если всё получится?

1 лайк

Это было бы превосходно! Мне вообще не важно, будут ли указаны авторские права :zany_face: Claude создал отличный документ в формате Markdown, от начала до конца, включающий файл plugin.rb и изменения в app.yml. Я перешлю его.

Спасибо за ваш интерес и поддержку! Разве это не отличный продукт и форум, а?

Дэн

2 лайка

Спасибо, что поделились этим; признаюсь, что теперь, когда у нас есть DiscourseID, мне гораздо менее интересно погружаться в тёмные воды прямой интеграции с Facebook!

Однако у нас скоро появится очень веская причина, которая может заставить меня пересмотреть этот вопрос.

2 лайка