Session role

역할 값은 로그인 순간 토큰에 들어가고 세션을 통해 읽힌다

세션에 role이 없으면 서버 컴포넌트, 미들웨어, 클라이언트 UI가 같은 권한 기준을 공유할 수 없다.

1Provider/DB사용자를 식별한다.
user.email
2Role lookupDB나 claim에서 역할을 읽는다.
admin
3jwt callback토큰에 역할을 저장한다.
token.role
4session callback세션으로 넘긴다.
session.user.role
5Guard라우트에서 비교한다.
role === 'admin'
하드코딩된 이메일 매핑은 학습용이다. 운영에서는 사용자 테이블, 조직 멤버십, IDP claim처럼 신뢰할 수 있는 출처에서 role을 읽는다.