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:
+4
-2
@@ -99,7 +99,7 @@ def get_user(request: Request) -> dict[str, Any] | None:
|
||||
return {
|
||||
"email": str(email),
|
||||
"name": request.session.get("user_name") or str(email),
|
||||
"picture": "",
|
||||
"picture": request.session.get("user_picture", "") or "",
|
||||
}
|
||||
return None
|
||||
|
||||
@@ -225,14 +225,16 @@ async def auth_google(request: Request):
|
||||
|
||||
email = str(userinfo.get("email", "")).lower().strip()
|
||||
name = userinfo.get("name") or email
|
||||
picture = userinfo.get("picture", "") or ""
|
||||
# OMS 와 공유하는 top-level 키 (SSO 계약)
|
||||
request.session["user_email"] = email
|
||||
request.session["user_name"] = name
|
||||
request.session["user_picture"] = picture
|
||||
# 기존 코드/템플릿 호환용 dict
|
||||
request.session["user"] = {
|
||||
"email": email,
|
||||
"name": name,
|
||||
"picture": userinfo.get("picture", ""),
|
||||
"picture": picture,
|
||||
}
|
||||
next_url = safe_next(request.session.pop("_post_login_next", "/"))
|
||||
return RedirectResponse(url=next_url, status_code=303)
|
||||
|
||||
Reference in New Issue
Block a user