Skip to content

Commit 3253725

Browse files
committed
fastapi jwt token api
1 parent 066869c commit 3253725

21 files changed

+195
-548
lines changed

.env

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
DATABASE_PORT=6500
2-
POSTGRES_PASSWORD=password123
1+
DATABASE_PORT=5432
2+
POSTGRES_PASSWORD=postgres
33
POSTGRES_USER=postgres
4-
POSTGRES_DB=fastapi
5-
POSTGRES_HOST=postgres
4+
POSTGRES_DB=fastapi_challenge
5+
POSTGRES_HOST=localhost
66
POSTGRES_HOSTNAME=127.0.0.1
77

88
ACCESS_TOKEN_EXPIRES_IN=15
@@ -11,13 +11,5 @@ JWT_ALGORITHM=RS256
1111

1212
CLIENT_ORIGIN=http://localhost:3000
1313

14-
VERIFICATION_SECRET=my-email-verification-secret
15-
16-
EMAIL_HOST=smtp.mailtrap.io
17-
EMAIL_PORT=587
18-
EMAIL_USERNAME=4aeca0c9318dd2
19-
EMAIL_PASSWORD=a987a0e0eac00d
20-
EMAIL_FROM=admin@admin.com
21-
22-
JWT_PRIVATE_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlCT2dJQkFBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVmlQWlJyVFpjd3l4RVhVRGpNaFZuCi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUUpBYm5LaENOQ0dOSFZGaHJPQ0RCU0IKdmZ2ckRWUzVpZXAwd2h2SGlBUEdjeWV6bjd0U2RweUZ0NEU0QTNXT3VQOXhqenNjTFZyb1pzRmVMUWlqT1JhUwp3UUloQU84MWl2b21iVGhjRkltTFZPbU16Vk52TGxWTW02WE5iS3B4bGh4TlpUTmhBaUVBbWRISlpGM3haWFE0Cm15QnNCeEhLQ3JqOTF6bVFxU0E4bHUvT1ZNTDNSak1DSVFEbDJxOUdtN0lMbS85b0EyaCtXdnZabGxZUlJPR3oKT21lV2lEclR5MUxaUVFJZ2ZGYUlaUWxMU0tkWjJvdXF4MHdwOWVEejBEWklLVzVWaSt6czdMZHRDdUVDSUVGYwo3d21VZ3pPblpzbnU1clBsTDJjZldLTGhFbWwrUVFzOCtkMFBGdXlnCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t
23-
JWT_PUBLIC_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVgppUFpSclRaY3d5eEVYVURqTWhWbi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ==
14+
JWT_PRIVATE_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlDWEFJQkFBS0JnUUNtYlFyaGZjeDBrOUdtcDR6V0lHMW9VUmRHZVZaVzFNa01hYkRYNm1iaFlSQ1VpTDRMCnhHdExJeCs4cVc5bUtNaWV1WGdJcVBoUjUySkVDV1lWS2lWREF4K1k4OEprc0ZHUzc1NnltZDRMUFNSNEdKUWYKaURuRTFra3JRbldqNU9DbVo5dXpVS0EvUnpMd0UwYzZ0b3Q5c012dWMrYm5FL1E3MHE0dGZDR1dGUUlEQVFBQgpBb0dBWEZpVE9nNEF2Z3Nyd09xbHRrY21Ea1U0d2cwZ0FHeHY1cWhheldRdWxBNjFFWVpTMWRxMm9tbXArWmlXCnpMd0NuamhSeDVSaXZhZkRtZmNSSXR0UTh0b2RyWUhTY0E0N1JNbFlMMDZWdk5TNW9UMHI2cnVIalNvZlp3MzMKZTVGdHg5Y2RKU0REQlVqS0Vud3loV2pyT3V2MTA2R3BaNGlvNTFZTkk0QWNVdUVDUVFEUGVzYUw1V0c2NjZQQgo2YWNIbEZkUlVEWXIzU3M5U01aeHBGbHVSbFZVMExHOVZCMVBzdmZxQzAxT3dmSFgxUHR0bDFuMDcwb2FtVW9iCmdOY2ZDNU50QWtFQXpWaC83b05EU0hHVDhIS1hzU1NMVGtNME9ndUprVFAzQXNDWEZHUDBDK09LUm56d3J1Q3cKL3hncTVuSHhOVVRlRkpqWmtzNFNBSTNITmIyOVZRTThTUUpBSFUyUnpTQlFkVDNpbXZpTkJwMEUyQThrRjMzZApKWUtweEZNWjdtRXduQkg5aUdmZzIrakM2dU05dituVVprOUdVMndVNEdzTFpFWlNHU0JSUWFrNDRRSkJBTG0rCmNOSTl0OUhDc3hBUGg3azdsaXJ2elVFb0NJTG9uMm5FN2FRTEdjamJSTXVuM2twQmdyanNrbm1xM1lYU3lwT1YKQTFHd3gwWHErU1JhZ2ZWeEhNa0NRSEFXcXUya0FQZnlPdnhtVEdxeEpVQytWdkZMb3NaM0FpQ0IxajBxWmljUgpxQzQyVUV6V3hxd0EvS0tzYy9oTWxWYUFOZVc1THJURitobmt1MFB4UUEwPQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQ==
15+
JWT_PUBLIC_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDbWJRcmhmY3gwazlHbXA0eldJRzFvVVJkRwplVlpXMU1rTWFiRFg2bWJoWVJDVWlMNEx4R3RMSXgrOHFXOW1LTWlldVhnSXFQaFI1MkpFQ1dZVktpVkRBeCtZCjg4SmtzRkdTNzU2eW1kNExQU1I0R0pRZmlEbkUxa2tyUW5XajVPQ21aOXV6VUtBL1J6THdFMGM2dG90OXNNdnUKYytibkUvUTcwcTR0ZkNHV0ZRSURBUUFCCi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ==

.env.example

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
DATABASE_PORT=6500
2+
POSTGRES_PASSWORD=password123
3+
POSTGRES_USER=postgres
4+
POSTGRES_DB=fastapi
5+
POSTGRES_HOST=postgres
6+
POSTGRES_HOSTNAME=127.0.0.1
7+
8+
ACCESS_TOKEN_EXPIRES_IN=15
9+
REFRESH_TOKEN_EXPIRES_IN=60
10+
JWT_ALGORITHM=RS256
11+
12+
CLIENT_ORIGIN=http://localhost:3000
13+
14+
15+
JWT_PRIVATE_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlCT2dJQkFBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVmlQWlJyVFpjd3l4RVhVRGpNaFZuCi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUUpBYm5LaENOQ0dOSFZGaHJPQ0RCU0IKdmZ2ckRWUzVpZXAwd2h2SGlBUEdjeWV6bjd0U2RweUZ0NEU0QTNXT3VQOXhqenNjTFZyb1pzRmVMUWlqT1JhUwp3UUloQU84MWl2b21iVGhjRkltTFZPbU16Vk52TGxWTW02WE5iS3B4bGh4TlpUTmhBaUVBbWRISlpGM3haWFE0Cm15QnNCeEhLQ3JqOTF6bVFxU0E4bHUvT1ZNTDNSak1DSVFEbDJxOUdtN0lMbS85b0EyaCtXdnZabGxZUlJPR3oKT21lV2lEclR5MUxaUVFJZ2ZGYUlaUWxMU0tkWjJvdXF4MHdwOWVEejBEWklLVzVWaSt6czdMZHRDdUVDSUVGYwo3d21VZ3pPblpzbnU1clBsTDJjZldLTGhFbWwrUVFzOCtkMFBGdXlnCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t
16+
JWT_PUBLIC_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVgppUFpSclRaY3d5eEVYVURqTWhWbi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ==

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
__pycache__
22
venv/
3-
# .env
3+
.venv
4+
.env

Makefile

Lines changed: 0 additions & 5 deletions
This file was deleted.

alembic/env.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,4 @@ def run_migrations_online() -> None:
7979
if context.is_offline_mode():
8080
run_migrations_offline()
8181
else:
82-
run_migrations_online()
82+
run_migrations_online()
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
"""creat users table
2+
3+
Revision ID: 10d12c9e7043
4+
Revises:
5+
Create Date: 2022-11-19 20:29:26.582229
6+
7+
"""
8+
from alembic import op
9+
import sqlalchemy as sa
10+
from sqlalchemy.dialects import postgresql
11+
12+
# revision identifiers, used by Alembic.
13+
revision = '10d12c9e7043'
14+
down_revision = None
15+
branch_labels = None
16+
depends_on = None
17+
18+
19+
def upgrade() -> None:
20+
# ### commands auto generated by Alembic - please adjust! ###
21+
op.create_table('users',
22+
sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False),
23+
sa.Column('name', sa.String(), nullable=False),
24+
sa.Column('username', sa.String(), nullable=False),
25+
sa.Column('password', sa.String(), nullable=False),
26+
sa.Column('created_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
27+
sa.Column('updated_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
28+
sa.PrimaryKeyConstraint('id'),
29+
sa.UniqueConstraint('username')
30+
)
31+
op.create_table('projects',
32+
sa.Column('id', postgresql.UUID(as_uuid=True), nullable=False),
33+
sa.Column('username', sa.String(), nullable=False),
34+
sa.Column('title', sa.String(), nullable=False),
35+
sa.Column('zip_code', sa.Integer(), nullable=False),
36+
sa.Column('cost', sa.Float(precision=2), nullable=False),
37+
sa.Column('done', sa.Boolean(), nullable=True),
38+
sa.Column('deadline', sa.DateTime(), nullable=False),
39+
sa.Column('created_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
40+
sa.Column('updated_at', sa.TIMESTAMP(timezone=True), server_default=sa.text('now()'), nullable=False),
41+
sa.ForeignKeyConstraint(['username'], ['users.username'], ondelete='CASCADE'),
42+
sa.PrimaryKeyConstraint('id')
43+
)
44+
# ### end Alembic commands ###
45+
46+
47+
def downgrade() -> None:
48+
# ### commands auto generated by Alembic - please adjust! ###
49+
op.drop_table('projects')
50+
op.drop_table('users')
51+
# ### end Alembic commands ###

alembic/versions/15770e820938_created_users_table.py

Lines changed: 0 additions & 40 deletions
This file was deleted.

alembic/versions/1c7984990e1d_created_posts_table.py

Lines changed: 0 additions & 39 deletions
This file was deleted.

alembic/versions/39256113e8e5_added_verification_code.py

Lines changed: 0 additions & 43 deletions
This file was deleted.

alembic/versions/4917da928a79_added_post_table.py

Lines changed: 0 additions & 39 deletions
This file was deleted.

app/config.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,6 @@ class Settings(BaseSettings):
1717

1818
CLIENT_ORIGIN: str
1919

20-
VERIFICATION_SECRET: str
21-
22-
EMAIL_HOST: str
23-
EMAIL_PORT: int
24-
EMAIL_USERNAME: str
25-
EMAIL_PASSWORD: str
26-
EMAIL_FROM: EmailStr
27-
2820
class Config:
2921
env_file = './.env'
3022

app/email.py

Lines changed: 0 additions & 62 deletions
This file was deleted.

app/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from fastapi import FastAPI
22
from fastapi.middleware.cors import CORSMiddleware
33
from app.config import settings
4-
from app.routers import user, auth, post
4+
from app.routers import project, user, auth
55

66
app = FastAPI()
77

@@ -20,7 +20,7 @@
2020

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

2525

2626
@app.get('/api/healthchecker')

0 commit comments

Comments
 (0)