Ondřej Žára
• Webmaster Guru
1.11.2021 v 10:31
Hezky den,
"ticket expired" znamena, ze jste se pokusil ziskat token prilis pozde. Platnost jednorazoveho kodu je casove vyznamne omezena (na cca 10-15 vterin).
Chyba "invalid_grant" muze byt zpusobena vice vecmi - idealni by bylo, kdybyste mohl ukazat cely pozadavek, co posilate (samozrejme s cenzurovanym client_id a client_secret) a my to overime.
dockal.dev
reagoval na příspěvek
od Ondřej Žára
1.11.2021 v 23:12
Request je vygenerovaný postmanem
curl --location --request POST 'https://login.szn.cz/api/v1/oauth/token' \
--header 'Content-Type: application/json' \
--data-raw '{
"grant_type": "authorization_code",
"code": "xx",
"redirect_uri": "http://localhost",
"client_secret": "xxx",
"client_id": "xxx"
}'
první odpověď je invalid_grant a po cca 15s je ticket expired
Díky
Ondřej Žára
reagoval na příspěvek
od dockal.dev
3.11.2021 v 10:24
Dobry den,
prijde mi, ze problem je ne-identicke redirect_uri v pozadavcich na /auth a /token. Tyto retezce musi byt stejne -a jestli se divam do spravneho logu, tak v jednom pripade jej zadavate s lomitkem na konci a ve druhem bez.
dockal.dev
17.11.2021 v 2:08
Dobrý den, zkusil jsem snad všechny ruzný možnosti, stále stejný problém. {"error": "invalid_grant"}
Nemůžete do dokumentace přidat funkční example ? Už prakticky netuším co dělám špatně.
Díky
Ondřej Žára
• Webmaster Guru
reagoval na příspěvek
od dockal.dev
18.11.2021 v 9:37
Dobry den,
kdyz pisete "vsechny ruzny moznosti", co konkretne tim myslite? Spravne by mela existovat presne *jedna* hodnota redirect_uri, kterou pouzijete na trech mistech. Za prve v registraci aplikace na vyvojari.seznam.cz, za druhe jako parametr pri presmerovani na /auth, za treti jako parametr pri volani /token. Delate to tak? A s jakou hodnotou redirect_uri?
Ondřej Žára
• Webmaster Guru
reagoval na příspěvek
od Ondřej Žára
18.11.2021 v 9:43
Podival jsem se jeste do logu na vas problem. Hodnotu redirect_uri (mam ted na mysli metodu /token) posilate url-enkodovanou, coz je chybne.
Fakticky pak selze porovnani "http://localhost:3000/" (to jste poslal do /auth) vs. "http%3A%2F%2Flocalhost%3A3000" (to jste poslal do /token).
Data je nutna escapovat s ohledem na pouzitou serializaci. Kdyz serializujete algoritmem "application/x-www-form-urlencoded" (tj. dvojice klic=hodnota), pak musite provadet url-enkodovani. Kdyz serializujete algoritmem JSON, pak musite provadet escapovani specificke pro JSON (a zadne jine).
Ondřej Žára
• Webmaster Guru
reagoval na příspěvek
od Ondřej Žára
18.11.2021 v 9:48
Pro uplnost: JSON data posilana do /token maji vypadat:
{
"redirect_uri": "http://localhost:3000/",
...
}
dockal.dev
reagoval na příspěvek
od Ondřej Žára
21.11.2021 v 13:47
Dobrý den, tím myslím že jsem zkoušel více variant url, s lomítkem, bez lomítka, enkodovanou a neenkodovanou
Existuje jen jedna hodnota pro redirect ? V nastavení jde povolit více :)
dockal.dev
reagoval na příspěvek
od Ondřej Žára
21.11.2021 v 13:48
Zkoušel jsem více variant (ve stejný čas, určite to v logu je videt), zkusím tedy znova.
dockal.dev
21.11.2021 v 16:01
Tak už jsem to rozjel, díky za pomoc! :)