diff --git a/sso-demo/public/css/style.css b/sso-demo/public/css/style.css new file mode 100644 index 0000000..f671d34 --- /dev/null +++ b/sso-demo/public/css/style.css @@ -0,0 +1,138 @@ +/* General Body Styles */ +body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + margin: 0; + background-color: #f8f9fa; + color: #333; +} + +.container { + max-width: 1100px; + margin: 0 auto; + padding: 0 24px; +} + +/* Notice Bar */ +.notice-bar { + background-color: #eef6ff; + border-bottom: 1px solid #d1e0f0; + padding: 12px 24px; + display: flex; + justify-content: space-between; + align-items: center; + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 1000; +} + +.notice-bar p { + margin: 0; +} + +/* CTA Button Styles */ +.cta-button { + height: 44px; + padding: 0 24px; + border: none; + border-radius: 8px; + background-color: #A19FE7; + color: white; + font-size: 16px; + font-weight: bold; + cursor: pointer; + transition: background-color 0.2s ease, box-shadow 0.2s ease; +} + +.cta-button:hover { + background-color: #583ac7; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +/* Header/Hero Section */ +.hero { + text-align: center; + padding: 120px 24px 60px; /* Add padding top to account for fixed notice bar */ +} + +.hero h1 { + font-size: 40px; + font-weight: 800; + margin-bottom: 16px; +} + +.hero .status-text { + font-size: 18px; + color: #555; +} + +.hero .status-text.logged-out { + font-size: 16px; + color: #777; +} + +/* Content Section */ +.content-section { + padding: 48px 0; +} + +.content-section h2 { + text-align: center; + font-size: 28px; + margin-bottom: 32px; +} + +.card-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 24px; +} + +.card { + background-color: white; + border: 1px solid #e9ecef; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0,0,0,0.05); + padding: 24px; + text-align: left; +} + +.card img { + width: 100%; + border-radius: 8px; + margin-bottom: 16px; +} + +.card h3 { + margin-top: 0; + font-size: 20px; +} + +.login-prompt { + text-align: center; + padding: 48px; + background-color: #fff; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0,0,0,0.05); +} + +/* Responsive Styles */ +@media (max-width: 768px) { + .notice-bar { + flex-direction: column; + padding: 12px; + } + + .notice-bar p { + margin-bottom: 8px; + } + + .hero { + padding-top: 150px; + } + + .card-grid { + grid-template-columns: 1fr; + } +} diff --git a/sso-demo/public/sso_popup.html b/sso-demo/public/sso_popup.html index d7e61fa..dc34a72 100644 --- a/sso-demo/public/sso_popup.html +++ b/sso-demo/public/sso_popup.html @@ -2,46 +2,57 @@ - SSO Login + Baron SSO Login + -

Simulated SSO Provider

-

Click the button below to simulate a successful login.

- +

Baron SSO Provider

+

아래 버튼을 클릭하면 로그인이 완료됩니다.

+ diff --git a/sso-demo/views/index.ejs b/sso-demo/views/index.ejs index 59d3a3e..03e4a49 100644 --- a/sso-demo/views/index.ejs +++ b/sso-demo/views/index.ejs @@ -3,31 +3,72 @@ - Express SSO Demo - + Express SSO Login Demo + -

Welcome to the Express SSO Demo

- -
+ +
<% if (user) { %> - Welcome, <%= user.username %>! -

Logout

+

환영합니다, <%= user.username %>!

+ Logout <% } else { %> -

You are not logged in.

- +

SSO로 로그인하면 회원 전용 글을 확인할 수 있습니다.

+ <% } %>
+
+ +
+

SSO LOGIN DEMO

+ <% if (user) { %> +

Welcome, user!

+ <% } else { %> +

You are not logged in.

+ <% } %> +
+ + +
+

Blog

+ <% if (user) { %> +
+
+

회원 전용 컨텐츠

+

로그인한 사용자에게만 보이는 특별한 컨텐츠입니다.

+
+
+

로그인 버튼 디자인

+

일관성 있는 CTA 버튼 디자인 가이드입니다.

+
+
+

SSO 핸들러 로직 분석

+

JWT 토큰을 검증하고 세션을 처리하는 과정을 살펴봅니다.

+
+
+

보안 강화 방안

+

애플리케이션의 보안을 강화하기 위한 몇 가지 방법입니다.

+
+
+

EJS 템플릿 엔진 활용

+

동적 웹 페이지를 만들기 위한 EJS 사용법을 알아봅니다.

+
+
+

CSS 스타일 가이드

+

UI의 일관성을 유지하기 위한 스타일 규칙입니다.

+
+
+ <% } else { %> + + <% } %> +
+
+