feat(sso): user_picture를 세션 top-level에 저장 — OMS 도 아바타 표시 가능

기존엔 'user' dict 안에만 picture 가 저장돼 OMS 가 못 읽었다.
이제 user_email/user_name 처럼 top-level 키로도 저장하여 OMS 가 동일하게 읽는다.
get_user() 도 top-level user_picture 를 인정.
This commit is contained in:
2026-05-24 14:18:46 +09:00
parent 7ddc765326
commit 844c796578
+4 -2
View File
@@ -99,7 +99,7 @@ def get_user(request: Request) -> dict[str, Any] | None:
return { return {
"email": str(email), "email": str(email),
"name": request.session.get("user_name") or str(email), "name": request.session.get("user_name") or str(email),
"picture": "", "picture": request.session.get("user_picture", "") or "",
} }
return None return None
@@ -225,14 +225,16 @@ async def auth_google(request: Request):
email = str(userinfo.get("email", "")).lower().strip() email = str(userinfo.get("email", "")).lower().strip()
name = userinfo.get("name") or email name = userinfo.get("name") or email
picture = userinfo.get("picture", "") or ""
# OMS 와 공유하는 top-level 키 (SSO 계약) # OMS 와 공유하는 top-level 키 (SSO 계약)
request.session["user_email"] = email request.session["user_email"] = email
request.session["user_name"] = name request.session["user_name"] = name
request.session["user_picture"] = picture
# 기존 코드/템플릿 호환용 dict # 기존 코드/템플릿 호환용 dict
request.session["user"] = { request.session["user"] = {
"email": email, "email": email,
"name": name, "name": name,
"picture": userinfo.get("picture", ""), "picture": picture,
} }
next_url = safe_next(request.session.pop("_post_login_next", "/")) next_url = safe_next(request.session.pop("_post_login_next", "/"))
return RedirectResponse(url=next_url, status_code=303) return RedirectResponse(url=next_url, status_code=303)