Przewodnik OAuth
Wszystkie wywołania API wymagają autoryzacji i są wykonywane w imieniu autoryzowanego użytkownika Ahrefs. Aby to zrobić, Twoja aplikacja musi uzyskać dla tego użytkownika token dostępu API.
Ahrefs Connect korzysta z OAuth 2.0 Authorization Code Flow z Proof Key for Code Exchange (PKCE). Proces składa się z dwóch głównych kroków:
1. Autoryzuj aplikację
Przekieruj użytkownika do:
https://app.ahrefs.com/web/oauth/authorize?response_type=code&client_id={client_id}&scope=apiv3-integration-apps&redirect_uri={redirect_uri}&code_challenge={code_challenge}&code_challenge_method=s256&state={state}
Parametry:
{client_id}: Zakodowany w URL identyfikator klienta (Client ID) z sekcji Ahrefs Connect w Ustawieniach konta.{redirect_uri}: Zakodowany w URL Redirect URI zarejestrowany w tej samej sekcji.{code_challenge}: Wyprowadzony z weryfikatora kodu (code verifier) przy użyciu metody S256:- Wygeneruj weryfikator kodu (code verifier) — losowy ciąg 43–128 znaków, korzystając z kryptograficznie bezpiecznego generatora. Dozwolone znaki:
[A-Z] [a-z] [0-9] - . _ ~(zob. RFC7636, sekcja 4.1). - Oblicz skrót SHA-256 weryfikatora kodu.
- Zakoduj skrót w Base64-URL.
- Użyj tej zakodowanej wartości jako
code_challenge(zob. RFC7636, sekcja 4.2).
- Wygeneruj weryfikator kodu (code verifier) — losowy ciąg 43–128 znaków, korzystając z kryptograficznie bezpiecznego generatora. Dozwolone znaki:
{state}: Wygeneruj nieprzezroczystą (opaque) wartość, aby zachować stan między żądaniem a wywołaniem zwrotnym. Serwer autoryzacji dołączy tę wartość podczas przekierowywania użytkownika z powrotem do Twojej aplikacji. (zob. RFC6749, sekcja 4.1.1)
info
Uwaga dla deweloperów starszych aplikacji:
Zarówno starsza integracja (API v2), jak i nowy Ahrefs Connect (API v3) korzystają z tego samego klienta OAuth. Oznacza to, że współdzielą też ten sam Redirect URI — nie możesz skonfigurować oddzielnych produkcyjnych Redirect URI dla starej i nowej wersji aplikacji.
Zalecamy zaktualizowanie produkcyjnego Redirect URI w Ustawieniach konta dopiero wtedy, gdy Twoja nowa aplikacja zostanie zweryfikowana i aktywowana przez Ahrefs oraz będziesz gotowy(-a) ją udostępnić.
Jeśli wolisz nadal używać tego samego Redirect URI dla obu wersji, możesz skorzystać z parametru {state}, aby rozróżniać żądania. Na przykład dołącz unikalny ciąg znaków dla dotychczasowej aplikacji oraz inny dla nowej aplikacji. Ponieważ serwer OAuth zwraca tę samą wartość {state} podczas przekierowywania użytkowników z powrotem do Twojej aplikacji, Twój serwer może rozgałęziać logikę na podstawie tej wartości. Dzięki temu użytkownicy mogą nadal generować tokeny w obu wersjach, nie przerywając działania istniejącej integracji.

Doświadczenie użytkownika:
- Użytkownik widzi ekran zgody na autoryzację Ahrefs.
- Udziela Twojej aplikacji uprawnienia do dostępu do Ahrefs API w swoim imieniu.
- Ahrefs przekierowuje go do Twojego Redirect URI z:
- parametrem
code— używanym w kroku 2 - parametrem
state— sprawdź, czy jest zgodny z Twoim pierwotnym żądaniem.
- parametrem
2. Pobierz access_token
Wymień code na access_token, wysyłając żądanie POST do https://ahrefs.com/oauth/token .
Wyślij parametry w treści żądania w formacie application/x-www-form-urlencoded (zob. RFC6749 sekcja 4.1.3):
grant_type:authorization_codeclient_id:{client_id}(Musi być zgodny z tym z kroku 1)redirect_uri:{redirect_uri}(Musi być zgodny z tym z kroku 1)code:{code}(Z kroku 1)code_verifier:{original_code_verifier}(Nieprzekształcona wartość z kroku 1)client_secret:{client_secret}(Tylko aplikacje webowe — znajduje się w sekcji Ahrefs Connect w Ustawieniach konta. Pomiń w przypadku aplikacji desktopowych.)
Przykładowa odpowiedź:
{
"access_token": "\<token do użycia w zapytaniach API>",
"expires_in": \<czas życia tokenu dostępu w sekundach>,
"token_type": "Bearer",
"scope": "apiv3-integration-apps"
}
Okres ważności Tokena i ponowne połączenie
- Nie są wydawane Tokeny odświeżania.
- Tokeny dostępu są ważne przez 1 rok. Po wygaśnięciu użytkownik musi ponownie się połączyć (ponownie autoryzować) przez OAuth.
info
Uwaga dotycząca bezpieczeństwa:
- Nigdy nie ujawniaj
access_tokenużytkownikom końcowym — ani podczas autoryzacji, ani później (w interfejsie, logach, adresach URL lub kodzie po stronie klienta). - W przypadku aplikacji webowych przechowuj
client_secretwyłącznie po stronie serwera. - W ramach procesu zatwierdzania musisz wykazać bezpieczną obsługę Tokenów.