57 lines
1.3 KiB
Markdown
57 lines
1.3 KiB
Markdown
# How To
|
|
|
|
## Authentication Setup (Ory)
|
|
|
|
### Prerequisites
|
|
1. Copy `.env.example` to `.env` and configure:
|
|
- `PORT=3000` (your app port)
|
|
- `TUNNEL_PORT=4000` (Ory tunnel port)
|
|
|
|
### Running the Application with Ory
|
|
|
|
1. Start the database and services:
|
|
```bash
|
|
docker-compose up
|
|
```
|
|
|
|
2. Apply the Ory identity migration:
|
|
```bash
|
|
docker exec -i $(docker ps -q -f name=db) psql -U party -d partydb < migrations/010_add_ory_identity_id.sql
|
|
```
|
|
|
|
3. In one terminal, start your Go server:
|
|
```bash
|
|
go run cmd/server/main.go
|
|
```
|
|
|
|
4. In another terminal, start the Ory tunnel:
|
|
```bash
|
|
npx @ory/cli tunnel --dev http://localhost:3000
|
|
```
|
|
|
|
5. Access your app through the tunnel URL (typically `http://localhost:4000`)
|
|
|
|
### How It Works
|
|
- Users authenticate through Ory's hosted UI
|
|
- On first login, a user record is created in your database with their Ory identity ID
|
|
- Protected routes (`/profile`, `/api/bookings`) require authentication
|
|
- User context is available in handlers via `auth.GetUser(r.Context())`
|
|
|
|
### Amending postgres table
|
|
|
|
```bash
|
|
docker exec -i $(docker ps -q -f name=db) psql -U party -d partydb < migrations/002_add_service_image_url.sql
|
|
```
|
|
|
|
### Entering Postgres CLI
|
|
|
|
```bash
|
|
docker exec -it $(docker ps -q -f name=db) psql -U party -d partydb
|
|
```
|
|
|
|
### Run Ory in Docker
|
|
|
|
```bash
|
|
docker run --rm -it oryd/ory help
|
|
```
|