Fórum pro vývojáře
    • Kategorie
    • Nepřečtené
    • Nejnovější
    • Populární
    • Svět
    • Přihlásit se

    Chyba při implementaci

    Naplánováno Připnuto Uzamknuto Přesunuto OAuth přihlášení přes Seznam
    13 Příspěvky 4 Přispěvatelé 482 Zobrazení
    Načítání více příspěvků
    • Od nejstarších po nejnovější
    • Od nejnovějších po nejstarší
    • S nejvíce hlasy
    Odpovědět
    • Odpovědět jako Téma
    Přihlásit se pro odpověď
    Toto téma bylo odstraněno. Jen uživatelé s oprávněním správy témat ho mohou vidět.
    • Ondřej Žára 0O Offline
      Ondřej Žára 0 @dockal.dev
      naposledy upravil

      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.

      1 odpověď Poslední odpověď Odpovědět Citovat 0
      • dockal.devD Offline
        dockal.dev
        naposledy upravil

        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 ŽáraO 1 odpověď Poslední odpověď Odpovědět Citovat 0
        • Ondřej ŽáraO Offline
          Ondřej Žára @dockal.dev
          naposledy upravil

          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 ŽáraO dockal.devD 2 odpovědí Poslední odpověď Odpovědět Citovat 0
          • Ondřej ŽáraO Offline
            Ondřej Žára @Ondřej Žára
            naposledy upravil

            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 ŽáraO dockal.devD 2 odpovědí Poslední odpověď Odpovědět Citovat 0
            • Ondřej ŽáraO Offline
              Ondřej Žára @Ondřej Žára
              naposledy upravil Administrátor

              Pro uplnost: JSON data posilana do /token maji vypadat:

              {
                "redirect_uri": "http://localhost:3000/",
                ...
              }
              
              1 odpověď Poslední odpověď Odpovědět Citovat 0
              • dockal.devD Offline
                dockal.dev @Ondřej Žára
                naposledy upravil

                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 🙂

                1 odpověď Poslední odpověď Odpovědět Citovat 0
                • dockal.devD Offline
                  dockal.dev @Ondřej Žára
                  naposledy upravil

                  Zkoušel jsem více variant (ve stejný čas, určite to v logu je videt), zkusím tedy znova.

                  1 odpověď Poslední odpověď Odpovědět Citovat 0
                  • dockal.devD Offline
                    dockal.dev
                    naposledy upravil

                    Tak už jsem to rozjel, díky za pomoc! 🙂

                    1 odpověď Poslední odpověď Odpovědět Citovat 0
                    • Asher VayneA Offline
                      Asher Vayne
                      naposledy upravil

                      @dockal.dev řekl v Chyba při implementaci:

                      dockal.dev
                      Nov 1, 2021, 2:35 AM

                      Hello,
                      I would like to implement a Login List, but I am encountering a problem with obtaining an access token from "code"

                      Sometimes I get an error right after generating the code

                      {
                      "message": "ticket expired",
                      "status": 466
                      }
                      and sometimes again

                      {"error": "invalid_grant"}
                      Thank you for your response.

                      This error usually occurs when the authorization code expires quickly or is reused. Make sure you exchange the code immediately and verify your redirect URI and client details are correct.

                      I faced a similar issue in an iOS flow where delay caused “invalid_grant” errors noticed this while working with delta ios executor related setups, and using a fresh code each time fixed it.

                      1 odpověď Poslední odpověď Odpovědět Citovat 1
                      • Asher VayneA Offline
                        Asher Vayne
                        naposledy upravil

                        @dockal.dev řekl v Chyba při implementaci:

                        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

                        Měl jsem podobný problém s OAuth flow a v mém případě byl problém v použití expirovaného nebo již použitého autorizačního kódu. Tyto kódy obvykle fungují pouze jednou a rychle expirují, takže načasování je velmi důležité.

                        Ujistěte se, že vaše redirect URI přesně odpovídá a nepoužíváte stejný kód znovu carpet heroes narazil jsem na podobné drobné chyby při práci na podobných implementacích.

                        1 odpověď Poslední odpověď Odpovědět Citovat 0
                        • První příspěvek
                          Poslední příspěvek