Skip to content

Commit ddc7e76

Browse files
committed
Normalize username identifier
1 parent ea0d4d2 commit ddc7e76

10 files changed

Lines changed: 26 additions & 26 deletions

File tree

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,5 +140,5 @@ Bruno is a lightweight, file-based API client that stores requests in plain text
140140

141141
Before authenticating, a user must be created:
142142

143-
1. Run the **Users → Create User** request and provide only a `user_name` in the request body.
144-
2. Next, use the **Authentication → Login** request with the same `user_name` to obtain an access and refresh token.
143+
1. Run the **Users → Create User** request and provide only a `username` in the request body.
144+
2. Next, use the **Authentication → Login** request with the same `username` to obtain an access and refresh token.

backend/app/core/security.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def verify_token(token: str) -> Optional[Dict[str, Any]]:
4646

4747

4848
def get_current_user(token: str = Depends(oauth2_scheme)) -> str:
49-
"""Return the user name encoded in the access token."""
49+
"""Return the username encoded in the access token."""
5050

5151
payload = verify_token(token)
5252
if not payload:
@@ -56,11 +56,11 @@ def get_current_user(token: str = Depends(oauth2_scheme)) -> str:
5656
headers={"WWW-Authenticate": "Bearer"},
5757
)
5858

59-
user_name = payload.get("sub")
60-
if not user_name:
59+
username = payload.get("sub")
60+
if not username:
6161
raise HTTPException(
6262
status_code=status.HTTP_401_UNAUTHORIZED,
6363
detail="Invalid token payload.",
6464
)
6565

66-
return user_name
66+
return username

backend/app/models/user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class User(Base):
1717
__tablename__ = "user"
1818

1919
user_id: Mapped[int] = mapped_column(BigInteger, primary_key=True, index=True)
20-
user_name: Mapped[str] = mapped_column(String(50), unique=True, nullable=False, index=True)
20+
username: Mapped[str] = mapped_column(String(50), unique=True, nullable=False, index=True)
2121
created_at: Mapped[datetime] = mapped_column(
2222
DateTime(timezone=True), nullable=False, server_default=func.now()
2323
)

backend/app/routes/auth_routes.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,15 @@
2626
def login(request: LoginRequest, db: Session = Depends(get_db)) -> LoginResponse:
2727
"""Authenticate a user and return access plus refresh tokens."""
2828

29-
user = db.query(User).filter(User.user_name == request.user_name).first()
29+
user = db.query(User).filter(User.username == request.username).first()
3030
if not user:
3131
raise HTTPException(
3232
status_code=status.HTTP_401_UNAUTHORIZED,
33-
detail="Invalid user name.",
33+
detail="Invalid username.",
3434
)
3535

36-
access_token = create_access_token({"sub": user.user_name})
37-
refresh_token = create_refresh_token({"sub": user.user_name})
36+
access_token = create_access_token({"sub": user.username})
37+
refresh_token = create_refresh_token({"sub": user.username})
3838

3939
user_dto = UserResponse.model_validate(user)
4040

@@ -62,7 +62,7 @@ def refresh_access_token(request: RefreshRequest) -> RefreshResponse:
6262
detail="Invalid or expired refresh token",
6363
)
6464

65-
user_name = payload.get("sub")
66-
new_access_token = create_access_token({"sub": user_name})
65+
username = payload.get("sub")
66+
new_access_token = create_access_token({"sub": username})
6767

6868
return RefreshResponse(access_token=new_access_token, token_type="bearer")

backend/app/routes/user_routes.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@
1616
class UserCreate(BaseModel):
1717
"""Payload used when creating a new user."""
1818

19-
user_name: str
19+
username: str
2020

2121

2222
@router.post("/", response_model=UserResponse, status_code=status.HTTP_201_CREATED)
2323
def create_user(request: UserCreate, db: Session = Depends(get_db)) -> User:
24-
"""Create a new user record if the user name is available."""
24+
"""Create a new user record if the username is available."""
2525

26-
if db.query(User).filter(User.user_name == request.user_name).first():
26+
if db.query(User).filter(User.username == request.username).first():
2727
raise HTTPException(
2828
status_code=status.HTTP_400_BAD_REQUEST,
29-
detail="User name already exists",
29+
detail="Username already exists",
3030
)
31-
user = User(user_name=request.user_name)
31+
user = User(username=request.username)
3232
db.add(user)
3333
db.commit()
3434
db.refresh(user)
@@ -37,12 +37,12 @@ def create_user(request: UserCreate, db: Session = Depends(get_db)) -> User:
3737

3838
@router.get("/me", response_model=UserResponse, status_code=status.HTTP_200_OK)
3939
def get_current_user_profile(
40-
current_user_name: str = Depends(get_current_user),
40+
current_username: str = Depends(get_current_user),
4141
db: Session = Depends(get_db),
4242
) -> User:
4343
"""Return the user information for the authenticated principal."""
4444

45-
user = db.query(User).filter(User.user_name == current_user_name).first()
45+
user = db.query(User).filter(User.username == current_username).first()
4646
if not user:
4747
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="User not found.")
4848

backend/app/schemas/auth_dto.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class LoginRequest(BaseModel):
99
"""Payload for authenticating a user."""
1010

11-
user_name: str
11+
username: str
1212

1313

1414
class LoginResponse(BaseModel):

backend/app/schemas/user_dto.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class UserResponse(BaseModel):
99
"""Representation of a user returned by the API."""
1010

1111
user_id: int
12-
user_name: str
12+
username: str
1313
created_at: datetime
1414

1515
class Config: # pylint: disable=too-few-public-methods

bruno/Inquiro Bruno/Authentication/Login.bru

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ post {
1212

1313
body:json {
1414
{
15-
"user_name": "user"
15+
"username": "user"
1616
}
1717
}
1818

bruno/Inquiro Bruno/Users/Create User.bru

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ post {
1212

1313
body:json {
1414
{
15-
"user_name": "user"
15+
"username": "user"
1616
}
1717
}

frontend/src/components/LoginView.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import axios from 'axios';
44
import { useRouter } from 'vue-router';
55
import { useAuthStore } from '@/stores/auth';
66
7-
const userName = ref('michael');
7+
const username = ref('michael');
88
const errorMessage = ref(null);
99
const isLoading = ref(false);
1010
@@ -18,7 +18,7 @@ const handleLogin = async () => {
1818
try {
1919
console.log("Trying to login")
2020
const response = await axios.post('http://localhost:8000/auth/login', {
21-
user_name: userName.value,
21+
username: username.value,
2222
});
2323
console.log(response)
2424

0 commit comments

Comments
 (0)