07 stycznia 2020
Autoryzacja użytkownika - udostępniamy mechanizm PKCE
Udostępniliśmy mechanizm PKCE (Proof Key for Code Exchange), który możesz użyć podczas autoryzacji użytkownika. Dzięki niemu zabezpieczysz swoją aplikację przed wykorzystaniem kodu autoryzacyjnego (authorization code) przez złośliwe oprogramowanie.
Aby z niego skorzystać, wygeneruj we własnym zakresie code_verifier - musi to być losowy ciąg znaków o długości pomiędzy 43 a 128 znaków, użyjesz go podczas żądania o token. Następnie w procesie autoryzacji dodaj dwa parametry:
- code_challenge - kod na potrzeby mechanizmu PKCE, jego wartość zależy od sposobu szyfrowania, który określisz w code_challenge_method,
- code_challenge_method - sposób szyfrowania code_challenge - może przyjmować jedną z dwóch wartości:
- S256 - oznacza, że code_challenge jest zahashowanym (algorytmem SHA-256) code_verifier, skorzystaj z tej wersji wartości - zapewnia większe bezpieczeństwo ze względu na użyte hashowanie,
- plain - oznacza, że wartość parametru code_challenge będzie równa wartości code_verifier.
Poniżej znajdziesz przykłady żądań HTTP dla code_verifier = KnAijeNvdSeloYlVcOh3HRmgZX57wDeVHiwRFQKO2F9DdBI.
Dla code_challenge_method=S256:
https://allegro.pl/auth/oauth/authorize?response_type=code&client_id=a21...6be&redirect_uri=http://exemplary.redirect.uri&code_challenge_method=S256&code_challenge=a69se03ZmsPhTLYQKHpGUH7m5waf-U8D-5pTwFRgLI4
Dla code_challenge_method=plain:
https://allegro.pl/auth/oauth/authorize?response_type=code&client_id=a21...6be&redirect_uri=http://exemplary.redirect.uri&code_challenge_method=plain&code_challenge=KnAijeNvdSeloYlVcOh3HRmgZX57wDeVHiwRFQKO2F9DdBI
Następnie, na etapie żądania o token, jako code_verifier przekaż tę samą wartość, jaką określiłeś wcześniej:
curl -X POST -H 'Authorization: Basic YTI...Hg=' 'https://allegro.pl/auth/oauth/token?grant_type=authorization_code&code=pOPEy9Tq94aEss540azzC7xL6nCJDWto&redirect_uri=http://exemplary.redirect.uri&code_verifier=KnAijeNvdSeloYlVcOh3HRmgZX57wDeVHiwRFQKO2F9DdBI'
Więcej informacji znajdziesz w naszym poradniku - autoryzacja użytkownika.