Skip to content

Commit

Permalink
fastapi jwt token api
Browse files Browse the repository at this point in the history
  • Loading branch information
otitamario committed Nov 20, 2022
1 parent 066869c commit 3253725
Show file tree
Hide file tree
Showing 21 changed files with 195 additions and 548 deletions.
20 changes: 6 additions & 14 deletions .env
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
DATABASE_PORT=6500
POSTGRES_PASSWORD=password123
DATABASE_PORT=5432
POSTGRES_PASSWORD=postgres
POSTGRES_USER=postgres
POSTGRES_DB=fastapi
POSTGRES_HOST=postgres
POSTGRES_DB=fastapi_challenge
POSTGRES_HOST=localhost
POSTGRES_HOSTNAME=127.0.0.1

ACCESS_TOKEN_EXPIRES_IN=15
Expand All @@ -11,13 +11,5 @@ JWT_ALGORITHM=RS256

CLIENT_ORIGIN=http://localhost:3000

VERIFICATION_SECRET=my-email-verification-secret

EMAIL_HOST=smtp.mailtrap.io
EMAIL_PORT=587
EMAIL_USERNAME=4aeca0c9318dd2
EMAIL_PASSWORD=a987a0e0eac00d
EMAIL_FROM=[email protected]

JWT_PRIVATE_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlCT2dJQkFBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVmlQWlJyVFpjd3l4RVhVRGpNaFZuCi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUUpBYm5LaENOQ0dOSFZGaHJPQ0RCU0IKdmZ2ckRWUzVpZXAwd2h2SGlBUEdjeWV6bjd0U2RweUZ0NEU0QTNXT3VQOXhqenNjTFZyb1pzRmVMUWlqT1JhUwp3UUloQU84MWl2b21iVGhjRkltTFZPbU16Vk52TGxWTW02WE5iS3B4bGh4TlpUTmhBaUVBbWRISlpGM3haWFE0Cm15QnNCeEhLQ3JqOTF6bVFxU0E4bHUvT1ZNTDNSak1DSVFEbDJxOUdtN0lMbS85b0EyaCtXdnZabGxZUlJPR3oKT21lV2lEclR5MUxaUVFJZ2ZGYUlaUWxMU0tkWjJvdXF4MHdwOWVEejBEWklLVzVWaSt6czdMZHRDdUVDSUVGYwo3d21VZ3pPblpzbnU1clBsTDJjZldLTGhFbWwrUVFzOCtkMFBGdXlnCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t
JWT_PUBLIC_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVgppUFpSclRaY3d5eEVYVURqTWhWbi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ==
JWT_PRIVATE_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWEFJQkFBS0JnUUNtYlFyaGZjeDBrOUdtcDR6V0lHMW9VUmRHZVZaVzFNa01hYkRYNm1iaFlSQ1VpTDRMCnhHdExJeCs4cVc5bUtNaWV1WGdJcVBoUjUySkVDV1lWS2lWREF4K1k4OEprc0ZHUzc1NnltZDRMUFNSNEdKUWYKaURuRTFra3JRbldqNU9DbVo5dXpVS0EvUnpMd0UwYzZ0b3Q5c012dWMrYm5FL1E3MHE0dGZDR1dGUUlEQVFBQgpBb0dBWEZpVE9nNEF2Z3Nyd09xbHRrY21Ea1U0d2cwZ0FHeHY1cWhheldRdWxBNjFFWVpTMWRxMm9tbXArWmlXCnpMd0NuamhSeDVSaXZhZkRtZmNSSXR0UTh0b2RyWUhTY0E0N1JNbFlMMDZWdk5TNW9UMHI2cnVIalNvZlp3MzMKZTVGdHg5Y2RKU0REQlVqS0Vud3loV2pyT3V2MTA2R3BaNGlvNTFZTkk0QWNVdUVDUVFEUGVzYUw1V0c2NjZQQgo2YWNIbEZkUlVEWXIzU3M5U01aeHBGbHVSbFZVMExHOVZCMVBzdmZxQzAxT3dmSFgxUHR0bDFuMDcwb2FtVW9iCmdOY2ZDNU50QWtFQXpWaC83b05EU0hHVDhIS1hzU1NMVGtNME9ndUprVFAzQXNDWEZHUDBDK09LUm56d3J1Q3cKL3hncTVuSHhOVVRlRkpqWmtzNFNBSTNITmIyOVZRTThTUUpBSFUyUnpTQlFkVDNpbXZpTkJwMEUyQThrRjMzZApKWUtweEZNWjdtRXduQkg5aUdmZzIrakM2dU05dituVVprOUdVMndVNEdzTFpFWlNHU0JSUWFrNDRRSkJBTG0rCmNOSTl0OUhDc3hBUGg3azdsaXJ2elVFb0NJTG9uMm5FN2FRTEdjamJSTXVuM2twQmdyanNrbm1xM1lYU3lwT1YKQTFHd3gwWHErU1JhZ2ZWeEhNa0NRSEFXcXUya0FQZnlPdnhtVEdxeEpVQytWdkZMb3NaM0FpQ0IxajBxWmljUgpxQzQyVUV6V3hxd0EvS0tzYy9oTWxWYUFOZVc1THJURitobmt1MFB4UUEwPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==
JWT_PUBLIC_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDbWJRcmhmY3gwazlHbXA0eldJRzFvVVJkRwplVlpXMU1rTWFiRFg2bWJoWVJDVWlMNEx4R3RMSXgrOHFXOW1LTWlldVhnSXFQaFI1MkpFQ1dZVktpVkRBeCtZCjg4SmtzRkdTNzU2eW1kNExQU1I0R0pRZmlEbkUxa2tyUW5XajVPQ21aOXV6VUtBL1J6THdFMGM2dG90OXNNdnUKYytibkUvUTcwcTR0ZkNHV0ZRSURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ==
16 changes: 16 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
DATABASE_PORT=6500
POSTGRES_PASSWORD=password123
POSTGRES_USER=postgres
POSTGRES_DB=fastapi
POSTGRES_HOST=postgres
POSTGRES_HOSTNAME=127.0.0.1

ACCESS_TOKEN_EXPIRES_IN=15
REFRESH_TOKEN_EXPIRES_IN=60
JWT_ALGORITHM=RS256

CLIENT_ORIGIN=http://localhost:3000


JWT_PRIVATE_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlCT2dJQkFBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVmlQWlJyVFpjd3l4RVhVRGpNaFZuCi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUUpBYm5LaENOQ0dOSFZGaHJPQ0RCU0IKdmZ2ckRWUzVpZXAwd2h2SGlBUEdjeWV6bjd0U2RweUZ0NEU0QTNXT3VQOXhqenNjTFZyb1pzRmVMUWlqT1JhUwp3UUloQU84MWl2b21iVGhjRkltTFZPbU16Vk52TGxWTW02WE5iS3B4bGh4TlpUTmhBaUVBbWRISlpGM3haWFE0Cm15QnNCeEhLQ3JqOTF6bVFxU0E4bHUvT1ZNTDNSak1DSVFEbDJxOUdtN0lMbS85b0EyaCtXdnZabGxZUlJPR3oKT21lV2lEclR5MUxaUVFJZ2ZGYUlaUWxMU0tkWjJvdXF4MHdwOWVEejBEWklLVzVWaSt6czdMZHRDdUVDSUVGYwo3d21VZ3pPblpzbnU1clBsTDJjZldLTGhFbWwrUVFzOCtkMFBGdXlnCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t
JWT_PUBLIC_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVgppUFpSclRaY3d5eEVYVURqTWhWbi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ==
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
__pycache__
venv/
# .env
.venv
.env
5 changes: 0 additions & 5 deletions Makefile

This file was deleted.

2 changes: 1 addition & 1 deletion alembic/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,4 @@ def run_migrations_online() -> None:
if context.is_offline_mode():
run_migrations_offline()
else:
run_migrations_online()
run_migrations_online()
51 changes: 51 additions & 0 deletions alembic/versions/10d12c9e7043_creat_users_table.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"""creat users table
Revision ID: 10d12c9e7043
Revises:
Create Date: 2022-11-19 20:29:26.582229
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

# revision identifiers, used by Alembic.
revision = '10d12c9e7043'
down_revision = None
branch_labels = None
depends_on = None


def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('users',
sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False),
sa.Column('name', sa.String(), nullable=False),
sa.Column('username', sa.String(), nullable=False),
sa.Column('password', sa.String(), nullable=False),
sa.Column('created_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('updated_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('username')
)
op.create_table('projects',
sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False),
sa.Column('username', sa.String(), nullable=False),
sa.Column('title', sa.String(), nullable=False),
sa.Column('zip_code', sa.Integer(), nullable=False),
sa.Column('cost', sa.Float(precision=2), nullable=False),
sa.Column('done', sa.Boolean(), nullable=True),
sa.Column('deadline', sa.DateTime(), nullable=False),
sa.Column('created_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.Column('updated_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
sa.ForeignKeyConstraint(['username'], ['users.username'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id')
)
# ### end Alembic commands ###


def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('projects')
op.drop_table('users')
# ### end Alembic commands ###
40 changes: 0 additions & 40 deletions alembic/versions/15770e820938_created_users_table.py

This file was deleted.

39 changes: 0 additions & 39 deletions alembic/versions/1c7984990e1d_created_posts_table.py

This file was deleted.

43 changes: 0 additions & 43 deletions alembic/versions/39256113e8e5_added_verification_code.py

This file was deleted.

39 changes: 0 additions & 39 deletions alembic/versions/4917da928a79_added_post_table.py

This file was deleted.

8 changes: 0 additions & 8 deletions app/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,6 @@ class Settings(BaseSettings):

CLIENT_ORIGIN: str

VERIFICATION_SECRET: str

EMAIL_HOST: str
EMAIL_PORT: int
EMAIL_USERNAME: str
EMAIL_PASSWORD: str
EMAIL_FROM: EmailStr

class Config:
env_file = './.env'

Expand Down
62 changes: 0 additions & 62 deletions app/email.py

This file was deleted.

4 changes: 2 additions & 2 deletions app/main.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.config import settings
from app.routers import user, auth, post
from app.routers import project, user, auth

app = FastAPI()

Expand All @@ -20,7 +20,7 @@

app.include_router(auth.router, tags=['Auth'], prefix='/api/auth')
app.include_router(user.router, tags=['Users'], prefix='/api/users')
app.include_router(post.router, tags=['Posts'], prefix='/api/posts')
app.include_router(project.router, tags=['Posts'], prefix='/api/projects')


@app.get('/api/healthchecker')
Expand Down
Loading

0 comments on commit 3253725

Please sign in to comment.