Configure sign up and log in with Auth0 using the OAuth2 Basic Plugin

@jerdog I have an open support ticket which one of your engineers has been working with me on. Happy for you to use that if it cuts time debugging! Ticket is #44440

Ruth

I tried now with a new profile from an American site i.e. withou the “eu”: https://testestukune.auth0.com/authorize

I am stuck on the same problem! :worried:

1 лайк

@RCheesley / @Serginho_Cintra / @blake - we are looking into this and will get with you as soon as we see what’s going on

1 лайк

From the other thread:

oauth2 json user id path : sub
oauth2 json username path : nickname
oauth2 json name path : name
oauth2 json email path : email

Quite different from the identities.[].id posted above!

Yes - things have likely changed from post #1 in terms of required settings

1 лайк

@riking see this post for why I had that.

1 лайк

@RCheesley and @Serginho_Cintra

The key part that we were missing is that we need to specify a scope when we ask Auth0 for user info.

I’ll update the original post with the correct values you need.

And thanks @jerdog for the help :slight_smile:!

4 лайка

Fantastic, thanks so much for all the help guys, hugely appreciated!

Ruth

3 лайка

Извини, @charchar, я не понимаю, как ты решил проблему «сообщения об ошибке без других вариантов». Я застрял именно на этом этапе…

Привет!

Если пользователь впервые знакомится с Discourse, то после аутентификации появляется окно с данными нового пользователя. Можно ли как-то автоматически создать пользователя в Discourse, не показывая это окно? Пользователь уже создан в Auth0…

В настоящее время это невозможно, но мы надеемся добавить эту функцию в ближайшее время

https://meta.discourse.org/t/openid-connect-authentication-plugin/103632/56?u=david

2 лайка

Та же ситуация с плагином discourse-saml?

Плагин SAML автоматически создаёт пользователя. Мы планируем сделать аналогичный функционал доступным в других плагинах.

3 лайка

Есть ли какие-то новости по этому вопросу?

У меня есть сайт, использующий oauth2-basic с Auth0. Это единственный доступный метод аутентификации, а локальные логины отключены. Новые пользователи не создаются на стороне Discourse, и вход завершается неудачей без каких-либо уведомлений, поэтому нет возможности добавить новых пользователей. Неясно, началось ли это после обновления до версии beta9 или когда мы несколько недель назад перешли на oauth2-basic.

На данный момент даже необходимость нажать кнопку на экране «Создайте свой аккаунт» была бы вполне приемлемой.

РЕДАКТИРОВАНИЕ: Компонент темы блокировал появление модального окна для новых пользователей. Тем не менее, я по-прежнему заинтересован в том, чтобы пропустить этот шаг.

1 лайк

Полезно знать, что установка logout redirect в значение https://SITENAME.auth0.com/v2/logout (или https://SITENAME.auth0.com/v2/logout?returnTo=SOME_URL_THAT_IS_IN_ALLOWED_LOGOUT_URLS) приведет к выходу из Auth0 при выходе из Discourse.

5 лайков

Теперь он доступен во ВСЕХ ПЛАГИНАХ :tada:

7 лайков

Следовал руководству по настройке SSO с помощью Auth0, и всё работает корректно. Однако, когда в Auth0 обновляется avatar_url, это изменение не отражается на стороне Discourse. Я пробовал выходить из системы и заходить снова как для администраторов, так и для обычных пользователей. Для ясности: аватар корректно устанавливается при регистрации, но позже на Discourse не обновляется. В логах я вижу отладочный вывод, и в user_json действительно содержится обновлённый avatar_url.

2 лайка

@blake, не мог бы ты сказать, это известная проблема или мне нужно что-то исправить в моей настройке?

В итоге я отключил плагин oauth2_basic и реализовал поток SSO с помощью правил Auth0, как описано здесь: https://blog.leog.me/discourse-sso-with-auth0-e49486d0294a

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

Также включите client_id
https://auth0.com/docs/logout/redirect-users-after-logout