Discourse-Anmeldung per Cookie-Token

Wir nutzen Discourse als unsere Community-Seite und haben eine offizielle Website.
Wir hoffen daher, dass Discourse nach der Anmeldung des Benutzers auf unserer offiziellen Website automatisch angemeldet werden kann.
Unsere offizielle Website fügt beim Einloggen des Benutzers einen Cookie hinzu und wir nutzen Cookie-Sharing in Discourse. Discourse erhält die Autorisierung im Cookie und ruft Benutzerinformationen ab, um sich anzumelden.
Die Codeimplementierung sieht wie folgt aus:

application_controller.rb
  before_action :check_cookie_login
  def check_cookie_login
    if !current_user && cookies[:authorization]
      external_id = get_external_id cookies[:authorization]
      cookie_log_on_user external_id
    end
  end
current_user.rb
 def cookie_log_on_user(external_id)
    sso_record = SingleSignOnRecord.find_by(external_id: external_id)
    user = sso_record.user
    log_on_user(user)
  end
default_current_user_provider.rb
 def log_off_user(session, cookie_jar)
    ……
   cookie_jar.delete('authorization')
 end

Ich frage mich, ob es etwas falsch an meiner Vorgehensweise gibt? Gibt es einen besseren Weg?

Das ist unsicher. Ein Benutzer könnte den Cookie in seinem Browser manipulieren und sich als jemand anderes anmelden.

Sie sollten stattdessen DiscourseConnect verwenden.

3 „Gefällt mir“

Vielen Dank für Ihren Vorschlag. Ich bin neu bei Discourse. Wenn ich stattdessen DiscourseConnect verwende, benötige ich eine Web-API, um eine Nonce zurückzugeben, die DiscourseConnect benötigt?

1 „Gefällt mir“