/ / Specyfikacja tokena dostępu Oauth2 i zakres obsługi - zakres, token dostępu, oauth2

Specyfikacje tokenu dostępu Oauth2 i zakres obsługi - zakres, access-token, oauth2

Mam dwa pytania, w których nie mogę się całkowicie rozejrzeć, mam nadzieję, że ktoś wyjaśni to jasno:

1: Żądasz tokena dostępu z poprawnym kodem i zakresem „access_userdata”. Token dostępu jest zapisywany w bazie danych z terminem ważności 10 dni. Czy można dodać nowy zakres do tokena dostępu? Czy to jest powszechne? Czy wymieniasz wszystkie zakresy bezpośrednio w aplikacji, której użytkownik musi udzielić jego / jej aprobata? Jeśli to możliwe, czy po prostu wyszukujesz token dostępu i dodajesz do niego nowy zakres?

2: Powiedzmy, że utworzyłeś aplikację, której używasz na komputerze i tablecie. Po pierwsze, na twoim komputerze dostajesz token dostępu, którego termin ważności upływa 10 dni. Następnego dnia robisz to samo na tablecie. Czy zostanie wygenerowany nowy token dostępu? Czy serwer zwróci ten sam token, ponieważ ty są tym samym użytkownikiem co na komputerze, a token jeszcze nie wygasł? Przypuszczam, że możesz mieć wiele tokenów dostępu dla tego samego użytkownika?

Odpowiedzi:

2 dla odpowiedzi № 1

to dobre pytanie =)

Po pierwsze, zakładam, że kiedy mówisz, że masz token, to tak naprawdę masz token WWW JSON (JWT) - czy to prawda? Zakładam, że tak.

  1. JWT nie można modyfikować po ich podpisaniu. Więc nie, nie możesz „zmodyfikować” istniejącego tokena i po prostu „dodać” zakresy do niego. Możesz jednak utworzyć NOWY obiekt JWT i zapisać go w bazie danych z nowo dołączonymi zakresami. Jeśli token został Ci przekazany przez zewnętrznego dostawcę, takiego jak Google lub Facebook, nie możesz samodzielnie modyfikować tych tokenów. Tylko osoba, która WYDAŁA token, może go zmienić.

  2. Zależy to od emitenta tokena. Zazwyczaj w przypadku przepływu OAuth odpowiedź brzmi tak: każde urządzenie, z którego się logujesz, otrzyma zupełnie nowy token z własną datą / godziną ważności. Bardzo często jest WIELU tokenów dla jednego użytkownika.