데브허브 | DEVHUB | Basic role based access control in Clerk [S2 E6]Basic role based access control in Clerk [S2 E6]
- Clerk의
public metadata를 활용하여 사용자 역할을 정의하고 UI에서 조건부 콘텐츠를 표시할 수 있습니다. 🏷️
- UI에서 링크를 숨기는 것만으로는 라우트 보호가 불충분하며, 직접 URL 접근 시 취약점이 발생합니다. 🚨
- 미들웨어에서 라우트를 보호하기 위해 사용자 역할을 확인하는 것이 필수적입니다. 🛡️
- 효율성을 위해 Clerk 대시보드에서 세션 토큰에
user.publicMetadata를 포함하도록 커스터마이징합니다. ⚙️
- 미들웨어는 세션 클레임 내의 메타데이터를 검사하여 특정 역할(예: 'admin')을 가진 사용자만 보호된 라우트에 접근하도록 제어합니다. 🔑
- 권한이 없는 사용자가 보호된 라우트에 접근하려 할 경우, 자동으로 홈페이지로 리디렉션됩니다. ↩️