Chyba při implementaci
-
Dobrý den,
chtěl bych implementovat Seznam přihlášení, ale narážim na problém se získáním access tokenu z "code"Někdy dostanu chybu hned po vygenerování kodu
{ "message": "ticket expired", "status": 466 }
a někdy zase
{"error": "invalid_grant"}
Děkuji za reakci.
-
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.
-
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
-
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.
-
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
-
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?
-
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).
-
Pro uplnost: JSON data posilana do /token maji vypadat:
{ "redirect_uri": "http://localhost:3000/", ... }
-
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
-
Zkoušel jsem více variant (ve stejný čas, určite to v logu je videt), zkusím tedy znova.
-
Tak už jsem to rozjel, díky za pomoc!