Ich erstelle eine API in Schienen für die mobile Anwendung. Jetzt meldet sich der Benutzer mit Facebook an und ich erhalte den Zugriffstoken nach der Facebook-Authentifizierung. Ich muss dieses Zugriffstoken nehmen und prüfen, ob das Zugriffstoken in der Anwendungsdatenbank existiert. Wenn dies der Fall ist, erlauben Sie den Benutzerzugriff, wenn nicht, dann prüfen Sie auf E-Mail und aktualisieren Sie das Zugriffstoken und erlauben Sie den Benutzerzugriff.
Wie mache ich das mit omniauth-facebook und devise, soweit ich Omniauth-facebook alles von Grund auf sehen kann, kann ich keinen Weg finden, nur Zugriffsmarker auf omniauth-facebook zu stellen.
Jede Art von Hilfe wäre großartig.
Sie brauchen nicht omniauth-facebook. Der Zweck dieses Edelsteins besteht lediglich darin, ein Zugriffstoken zu erhalten (und die Informationen des Benutzers abzufragen). So geschieht es in einem Standard-Setup (mit Devise und omniauth-facebook):
(siehe Devise's Dokumentation über Omniauth für weitere Details)
Nun, da Sie bereits ein Zugriffs-Token haben und das Abrufen der Benutzerinformationen aus Facebooks API sehr einfach ist, brauchen Sie omniauth-facebook nicht wirklich.
Alles was Sie tun müssen, ist eine Aktion zu schreiben:
Dieser Code basiert auf dem Beispiel in Dokumentation von Devise .
%Vor%Hinweise:
sign_in_and_redirect
, set_flash_message
und is_navigational_format?
sind Helfer, die von Devise User.find_for_facebook_oauth
finden Sie in der Dokumentation von Devise .
Tags und Links devise access-token facebook-login