Zarabiaj na swoim rozszerzeniu Chrome dzięki autoryzacji OpenID Connect (OAuth 2.0)
Dowiedz się, jak zarabiać na swoim rozszerzeniu Chrome, dodając do niego autoryzację użytkowników.
Dowiedz się, jak zarabiać na swoim rozszerzeniu Chrome, dodając do niego autoryzację użytkowników.
Rozszerzenia Chrome to świetny sposób na rozszerzenie funkcjonalności przeglądarki Chrome. Gdy twoje rozszerzenie jest popularne, możesz chcieć na nim zarabiać, oferując płatne funkcje użytkownikom, którzy za nie zapłacą. Autoryzacja użytkownika jest niezbędna w tym celu:
Z drugiej strony, nie chcemy trzymać się systemu kont Google, ponieważ twoi użytkownicy mogą preferować korzystanie z innych kont lub możesz mieć wiele usług, które chcesz zintegrować z tym samym systemem tożsamości.
Krótki przegląd korzyści płynących z używania OpenID Connect (OIDC) do autoryzacji:
W tym tutorialu użyjemy Logto jako dostawcę OIDC, co jest alternatywą dla Auth0 w budowaniu infrastruktur tożsamości.
Zacznijmy!
Zakładając, że umieścisz przycisk "Zaloguj się" w oknie popup swojego rozszerzenia Chrome, przepływ autoryzacji będzie wyglądał tak:
Dla innych interaktywnych stron w twoim rozszerzeniu, wystarczy zastąpić uczestnika Extension popup nazwą strony. W tym tutorialu skupimy się na stronie popup.
Aby rozpocząć, utwórz aplikację Logto z typem "Aplikacja jednostronicowa". Wykonaj poniższe kroki, aby utworzyć aplikację Logto:
Zainstaluj Logto SDK w swoim projekcie rozszerzenia Chrome:
manifest.jsonLogto SDK wymaga następujących uprawnień w manifest.json:
permissions.identity: Wymagane dla API Tożsamości Chrome, który jest używany do logowania i wylogowania.permissions.storage: Wymagane do przechowywania sesji użytkownika.host_permissions: Wymagane dla Logto SDK do komunikacji z API Logto.W skrypcie w tle twojego rozszerzenia Chrome zainicjalizuj Logto SDK:
Zastąp <your-logto-endpoint> i <your-logto-app-id> rzeczywistymi wartościami. Możesz je znaleźć na stronie aplikacji, którą właśnie utworzyłeś w konsoli Logto.
Jeśli nie masz skryptu w tle, możesz postępować zgodnie z oficjalnym przewodnikiem, aby go utworzyć.
Następnie musimy słuchać wiadomości z innych stron rozszerzenia i obsługiwać proces autoryzacji:
Możesz zauważyć, że w powyższym kodzie używane są dwa URI przekierowania. Oba są tworzone przez chrome.identity.getRedirectURL, co jest wbudowanym API Chrome do generowania URL przekierowania dla przepływów uwierzytelniania. Dwa URI to:
https://<extension-id>.chromiumapp.org/callback dla logowania.https://<extension-id>.chromiumapp.org/ dla wylogowania.Pamiętaj, że te URI nie są dostępne i służą jedynie do wywoływania przez Chrome określonych działań w procesie uwierzytelniania.
Teraz musimy zaktualizować ustawienia aplikacji Logto, aby dopuścić URI przekierowania, które właśnie utworzyliśmy.
https://<extension-id>.chromiumapp.org/callback.https://<extension-id>.chromiumapp.org/.chrome-extension://<extension-id>. SDK w rozszerzeniu Chrome użyje tego pochodzenia do komunikacji z API Logto.Pamiętaj, aby zastąpić <extension-id> swoim rzeczywistym ID rozszerzenia. Możesz znaleźć ID rozszerzenia na stronie chrome://extensions.
Po zaktualizowaniu ustawień, twoje ustawienia aplikacji Logto powinny wyglądać tak:

Jesteśmy prawie tam! Dodajmy przyciski logowania i wylogowania oraz inne niezbędne elementy do strony popup.
W pliku popup.html:
W pliku popup.js (zakładając, że popup.js jest zawarty w popup.html):
Teraz możesz przetestować przepływ autoryzacji w swoim rozszerzeniu Chrome:
Ponieważ Chrome zapewnia zunifikowane API przechowywania, poza przepływem logowania i wylogowania, wszystkie inne metody Logto SDK można używać bezpośrednio na stronie popup.
W swoim popup.js, możesz ponownie użyć instancji LogtoClient utworzonej w skrypcie w tle lub utworzyć nową z tą samą konfiguracją:
Następnie możesz utworzyć funkcję, aby załadować stan autoryzacji i profil użytkownika:
Możesz także połączyć funkcję loadAuthenticationState z logiką logowania i wylogowania:
Oto przykład strony popup z stanem autoryzacji:

Więcej informacji na temat SDK można znaleźć w oficjalnej dokumentacji SDK dla przeglądarek. SDK dla przeglądarek dzieli te same API z SDK dla rozszerzeń Chrome.
browser lub podobny, aby uniknąć zbędnego bundlingu modułów Node.js.Zobacz nasz przykładowy projekt dla kompletnego przykładu z TypeScript, Rollup i innymi konfiguracjami.
Z uwierzytelnionymi użytkownikami możesz teraz bezpiecznie oferować płatne funkcje w swoim rozszerzeniu Chrome. Na przykład, możesz przechowywać status subskrypcji użytkownika w jego profilu i sprawdzać go, gdy użytkownik otwiera rozszerzenie.
Łącząc siłę rozszerzeń Chrome i Logto, możesz zbudować bardziej elastyczne i spersonalizowane rozszerzenie, które pokochają zarówno ty, jak i twoi użytkownicy.