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?