· 5 years ago · Nov 15, 2019, 11:22 PM
1Konto admina
2login: admin
3hasło: admin123
4
5Logowanie apka webowa (OAuth2 implicit)
6
71. Użytkownik klika zaloguj w aplikacji
82. Przekierowuje go pod url http://localhost:8080/oauth/authorize?client_id=web-client&response_type=token&redirect_uri=http://localhost:3000/success_login
93. Wyświetla się formularz do zalogowania, użytkownik wprowadza dane i klika sign in
104. Przekierowuje z powrotem do apki pod adres http://localhost:3000/success_login#access_token=<token>&token_type=bearer&expires_in=<czas>&scope=read%20write
115. Klient zapisuje token z urla w cookies, ustawia ważność ciastka (też z urla)
12
13----ZAPYTANIA DO ENDPOINTÓW----
14
15header:
16 key:
17 Authorization value:Bearer <access_token>
18 body:
19 to co potrzeba dla danego zapytania
20
21
22
23Logowanie android (OAuth2 resource owner password credentials)
24
25POST /oauth/token - pobranie tokena do uwierzytelniania się
26 header:
27 key:Authorization value:bW9iaWxlLWNsaWVudDptb2JpbGVAY2xpZW50 (to jest mobile-client:mobile@secret w base64)
28 body:
29 key:grant_type value:password
30 key:username value:<login użytkownika>
31 key:password value:<hasło użytkownika>
32
33 Przykładowy zwrócony json:
34 {
35 "access_token": "4951f9b8-26d8-446d-97d3-e981482b4c40",
36 "token_type": "bearer",
37 "refresh_token": "3f5eb36a-0518-4ade-a01b-6ee2bafcdbb0",
38 "expires_in": 3599,
39 "scope": "read write"
40 }
41
42 Zapisujemy access_token i refresh_token.
43 Przy wysyłaniu zapytań do zabezpieczonych endpointów wysyłamy access_token, w ten sposób jesteśmy autoryzowani
44
45 ----ZAPYTANIA DO ENDPOINTÓW----
46
47 header:
48 key:Authorization value:Bearer <access_token>
49 body:
50 to co potrzeba dla danego zapytania
51
52 ----POBIERANIE ACCESS TOKENA Z UŻYCIEM REFRESH TOKENA
53
54 Aby zapamiętać użytkownika można zapisać w shared preferences refresh token. Refresh token nie traci ważności w przeciwieństwie do access tokena.
55 Przy każdym odpaleniu apki wysyłany jest refresh token do serwera, w odpowiedzi dostajemy access token i mamy dostęp do endpointów
56
57 POST /oauth/token
58
59 header:
60 key:Authorization value:<klucz w base64>
61 body:
62 key:grant_type value:refresh_token
63 key:refresh_token value:<refresh token>
64
65POST /users - rejestracja użytkownika
66 Przykładowy json przekazywany w body:
67 {
68 "username" : "user1",
69 "password" : "@user1@"
70 }
71
72GET /test - zadziała przy przesłaniu access tokena w headerze