5

Jak zaimplementować normalny odźwierny oauth2 po tym, jak użytkownik uwierzytelni się przez Facebook za pośrednictwem mojej aplikacji mobilnej?Uwierzytelnianie z odźwiernym po autoryzacji facebookowej

PS Używam biżuterii odźwiernego do wdrożenia dostawcy oauth2 dla mojej aplikacji mobilnej. Korzystam z przepływu poświadczeń hasła właściciela zasobów, aby wdrożyć uwierzytelnianie za pomocą nazwy użytkownika i hasła.

Jeśli więc użytkownik uwierzytelnia się przez Facebook za pomocą aplikacji mobilnej, w jaki sposób uwierzytelnić użytkownika przez portiera z tokenem dostępu do Facebooka. Więc nie ma w tym przypadku nazwy użytkownika/hasła (który odrzuca błąd związany z brakującymi parametrami).

Jaki jest prawidłowy sposób wdrożenia tego przepływu.

1. User authenticates from facebook through the mobile app. 
2. Facebook access token is passed to the API server. 
3. If the access token is valid, the api server returns the 
    doorkeeper access token. 
4. In case the access token is not valid, the api server returns 401 Unauthorized. 

Co to jest prawidłowe podejście do realizacji tego przepływu? Niektóre wskazówki w dobrym kierunku są bardzo doceniane.

+0

Znalazłeś już rozwiązanie? – Samnang

+0

cóż, zaimplementowałem ten sam przepływ, o którym wspomniałem w pytaniu. jeśli token był nieważny, zwróciłem zero, a token jest ważny, zwróciłem obiekt użytkownika –

+1

Jak zrobić krok 3? Facebook w swojej odpowiedzi da mi token ... jak sprawdzić, czy token jest ważny na serwerze API? – user1364684

Odpowiedz

6

To rozszerzenie istniejącego grantu odźwierny płynie, dokładnie rozwiązuje ten problem: https://github.com/doorkeeper-gem/doorkeeper-grants_assertion

Przepływ twierdzenie jest wymiana między access_token danego dostawcy, za żeton dostępu od dostawcy OAuth.

+0

Po wykonaniu tego otrzymuję 'NoMethodError (niezdefiniowana metoda 'resource_owner_from_assertion' dla # ):' jakiekolwiek sugestie? –

+0

Bardzo mi przykro z powodu tak późnej odpowiedzi. Zapomniałem o tym. Rozgrywka wygląda perfekcyjnie. Przyjmuję tę odpowiedź, chociaż sam jej nie wypróbowałem. Będę musiał to wypróbować wkrótce. –

3

Jest prośba przyciąganie naprawić "NoMethodError (metoda niezdefiniowany 'resource_owner_from_assertion' na #)":

zmienić Gemfile:

gem "odźwierny-grants_assertion" github: „Inittec/doorkeeper-grant_assertion ", branch:" master "

+0

Witam, to nie jest rozwiązanie mojego problemu. Nie publikuj go jako odpowiedzi. Możesz jednak opublikować to jako własne pytanie i odpowiedź, ponieważ pomoże to również innym. (Dobry sposób, aby uzyskać kilka punktów tutaj :)) –

Powiązane problemy