Pracuję od this reference i próbuję wdrożyć protokół OAuth, aby umożliwić użytkownikom logowanie się do mojej witryny za pośrednictwem Facebooka. Jednak dokumentacja Facebooka jest dość okropna i niejasna w kilku kluczowych częściach.W jaki sposób odnawiasz wygasły token dostępu Facebook?
Mówi, że autoryzacja trwa trzy etapy:
uwierzytelniania użytkownika (przekierować użytkownika do
https://facebook.com/dialog/oauth?client_id=...&redirect_uri=...
i oczekują, że stronaredirect_uri
zostać odwołany zcode
). Działa świetnie!Autoryzacja aplikacji (obsługiwana przez Facebook itp.). Działa świetnie!
uwierzytelniania App (Na stronie zwrotnej, chwyć
code
dostać i nazywająhttps://graph.facebook.com/oauth/access_token?client_id=...&redirect_uri=...&client_secret=...&code=...
. Ciało odpowiedź będzie zawieraćaccess_token
musimy robić rzeczy)
Rozumiem, że z access_token
, Mogę zadzwonić do API i takie. Ale co się stanie, gdy wygasa? Mogę dostać nowy, ale w tym momencie będzie wiele żądań HTTP później, a ja już nie mam code
użyłem, aby go uzyskać w pierwszej kolejności. Czy muszę przechowywać code
wzdłuż strony access_token
? Czy muszę nakazać użytkownikowi zalogowanie się ponownie, aby uzyskać nową code
, aby uzyskać nową access_token
?
Czy brakuje tu kluczowej części? Nie potrzebuję tokena offline_access
, ponieważ będę pobierał dane tylko w odpowiedzi na akcje użytkownika.
A więc, czekaj, czy mówisz, że powinienem ponownie uwierzytelniać się przy każdym ładowaniu strony? Czy to nie podwoi liczby żądań do mojego serwera? –
Musisz tylko ponownie uwierzytelnić się po wygaśnięciu access_token. Odpowiedź, w której uzyskuje się parametr access_token, obejmuje również parametr expires, który określa liczbę sekund do wygaśnięcia access_token. Wiesz, kiedy wydaje się token, więc musisz tylko sprawdzić, czy wygasł na podstawie liczby sekund. Jeśli tak, weź nowy. Jeśli tak się nie stało, używaj go dalej. – Owen
Oh, okay. Na szczęście jest to wniosek, do którego doszedłem wcześniej. Po prostu wstawiam przekierowanie na początek procedury OAuth, gdy wygasa token. –