- Docker
- Yarn v1
- ngrok
Bardzo dobry opis konfiguracji Auth0 jest tutaj.
lub
możesz również skonfigurować projekt przy pomocy konfiguracji przygotowanej przez nas (zalecane):
-
Auth0 Dashboard -> Applications -> Applications -> Create Application -> Single Page Web Applications (Nazwa dowolna)
-
Settings -> Applications URls Allowed Callback URLs:
http://localhost:3000/api/auth/callback
Allowed Logout URLs:http://localhost:3000/
-
Zapisz zmiany
-
Auth0 Dashboard -> Applications -> APIs -> Create API (Nazwa dowolna)
-
Identifier:
http://localhost:4000/graphql
-
Github developer settings -> OAuth Apps -> New OAuth App (nazwa dowolna)
-
Hompage URL: Domain z auth0 (
https://yourdomain.auth0.com
) Authorization callback URL: Domain z auth0 (https://yourdomain.auth0.com/login/callback
) -
Register application
-
Generate a new client secret (zapisz go, bo będzie potrzebny w następnym kroku)
-
Auth0 Dashboard -> Authentication -> Social -> Create Connection -> GitHub (uzupełnić danymi z aplikacji dodanej w poprzednim kroku https://github.com/settings/developers) Client ID: Client ID z GH Client Secret: Client Secret z GH Zapisz zmiany (Create)
-
Auth0 Dashboard -> Applications -> Applications -> Your Single Page Web Application -> Connections Włącz GitHub
apps/api/.env
PORT=4000 # Można użyć innego portu
DATABASE_URL=postgres://postgres:[email protected]:5432/api # Postgres URL
AUTH0_DOMAIN=yourdomain.auth0.com # Twoja domena z auth0, trzeba podmienić
BASE_URL=http://localhost:4000 # URL do backendu
NODE_ENV="development"
WEBHOOK_SECRET=randowmowy-string
FRONTEND_BASE_URL=http://localhost:3000
apps/web/.env
NEXT_PUBLIC_GRAPH_API_URI=http://localhost:4000/graphql # URL do graphql backendu
AUTH0_SECRET=randowmowy-string
AUTH0_BASE_URL=http://localhost:3000 # URL do frontendu
AUTH0_ISSUER_BASE_URL=yourdomain.auth0.com # Twoja domena z auth0, trzeba podmienić
AUTH0_CLIENT_ID= # Client ID z auth0 (twoja aplikacja -> settings -> basic information)
AUTH0_CLIENT_SECRET= # Client Secret z auth0 (twoja aplikacja -> settings -> basic information)
Stringi do AUTH0_SECRET i WEBHOOK_SECRET można wygenerować za pomocą skryptu:
node -e "console.log(crypto.randomBytes(32).toString('hex'))"
Oprócz tego będziesz potrzebował skonfigurowanego flow logowania, żeby informacje o logowaniu/rejestracji były przekazywane do twojej aplikacji.
Auth0 Dashboard -> Actions -> Flows -> Login -> [+] -> Build custom
Skopiuj tam zawartość pliku apps/api/login_action.ts
W dependencies dodaj wymagane dla snippetu zależności. (Dependencies i Secrets są dostępne w sidebarze po lewej stronie)
W secrets dodaj WEBHOOK_SECRET
, który ma być taki sam jak ten użyty w apps/api/.env
Tak utworzoną akcję przeciągnij pomiędzy do flow logowania pomiędzy Start
a Complete
.
Zauważ, że w kodzie tej akcji znajduje się zmienna domain
w której znajduje się adres webhooka. Aby testować lokalnie należy tam wrzucić adres np. z ngroka uzyskany przy pomocy komendy:
ngrok http PORT
# PORT to port backendu np. 4000
Instalacja paczek i uruchomienie projektu wykorzystując yarn:
cd start-coding
yarn
yarn dev