Skip to content

HBEA100_로그인

(Hereby) 직원 앱 > 로그인

직원 앱 (Employee App / ESS, 포트 4002)
대상 사용자미인증 방문자 → 조건1 [직원(self scope)] 발급 대상
프로토타입TBU
관련 정책[[POL_권한(RBAC)]]
Statusreview
Owner카나 (PM)

개요

직원 앱 로그인 화면(/employee-app/signin). 타이틀 "hereby 웍스" + 서브타이틀 = 조직명("hereby Medical") + 앱 로고 (2026-08-19 라이브 실증 — 구 "직원 앱에 로그인하세요" 타이틀은 미현행). 인증 방식 탭 2종: "비밀번호"(ID/비밀번호) / "휴대폰 인증"(ID → 인증번호 발송 → SMS OTP). "로그인" 버튼은 입력 전 disabled, 하단 "비밀번호 찾기" 링크. 인증 성공 시 근무 탭 홈(self scope). 휴대폰 인증 OTP는 LoginOtpCode에 발급·검증된다. 계정 레이어 전환(7/16 코드)은 라이브 반영 확인됨(브랜딩·탭 구성 실측 일치).

문서 히스토리

날짜작성자변경 내용
2026-07-06카나PM최초 작성
2026-07-13카나PM버튼 행동 명세 보강
2026-07-21카나PMGC700 깊이 재작성
2026-07-21카나PM셀 스타일 확정판 적용 (콸 승인)
2026-08-19카나PM라이브 실증(세션 만료 계기): 타이틀 "hereby 웍스"·조직명 서브타이틀·로그인 disabled·"비밀번호 찾기" 확인, 계정 레이어 ⚠ 해소

Data I/O

Server → Client

변수DB 엔티티.컬럼값 없을 때비고
$LoginOtpCode (발급 상태 파생)idle(초기)"발송 중..." / 입력 대기 상태 표시
$인증 세션 (self scope)없음(로그인 폼 유지)⚠ 계정 레이어 전환(7/16 코드) 반영 여부 라이브 확인 필요

Client → Server

액션전달 값tRPC procedure권한 토큰
비밀번호 로그인id, passwordsdk.auth.signin() (추정)(미인증 → 세션 발급)
인증번호 받기idsdk.auth.requestOtp() (추정)(미인증)
인증번호 검증id, otpsdk.auth.verifyOtp() (추정)(미인증 → 세션 발급)

발급/생성: 비밀번호·OTP 검증 → ${employee_session} 발급 / 인증번호 받기 → LoginOtpCode 생성. procedure 명 확정값 = TBU. ⚠ 계정 레이어 전환(7/16 코드)으로 세션 발급 경로가 바뀌었는지 라이브 확인 필요.

외부 통합 (해당 시)

외부 시스템데이터동기/비동기비고
SMS 발송휴대폰 인증 OTP 문자비동기발송사·재발송 정책 = TBU

화면 플로우


로그인 사양표

번호항목/기능명타입사양 및 기능 설명연관/영향 범위비고
00화면 진입 조건-미인증 방문자 공통 노출.
 - CASE01 [세션 보유]: 근무 탭 홈으로 이동(로그인 화면 skip)
$⚠ 계정 레이어 전환(7/16 코드) 반영 여부 라이브 확인 필요
01초기 상태Output"비밀번호" 탭 활성. 타이틀 "hereby 웍스" + 서브타이틀 조직명("hereby Medical") + 앱 로고 (2026-08-19 실증)
10인증 방식 탭Tab• 인증 방식을 "비밀번호" / "휴대폰 인증" 2탭으로 전환하는 컨트롤
• 클릭 시: 해당 인증 폼으로 전환("비밀번호"=초기 활성, "휴대폰 인증"=전환 표시)
⚠ 계정 레이어 7/16 로 탭 노출·순서 변동 여부 확인
20비밀번호 탭-ID·비밀번호 입력 후 로그인
ㄴ21IDInput• 직원 ID를 입력받는 필드
• 입력 → 직원 ID 반영. 빈 입력 유지 가능
TBU: 형식 검증 UI
ㄴ22비밀번호Input• 비밀번호를 마스킹 입력받는 필드
• 입력 → 마스킹 반영
 - "비밀번호 표시" 클릭 → 마스킹/평문 토글
ㄴ23로그인Button• 입력 자격으로 세션을 발급받아 홈으로 진입하는 기능
• 클릭 → 성공 시 근무 탭 홈 전환
 - CASE01 [ID/비밀번호 미입력]: disabled(무반응 정상)
 - CASE02 [자격 불일치]: 실패 처리
${employee_session} 발급⚠ 세션 발급 계정 레이어 7/16 확인
TBU: 실패 메시지·잠금 정책
ㄴ24비밀번호 찾기Link• 비밀번호 재설정 동선으로 이동하는 링크
• 클릭 → TBU(재설정 동선 미확인)
TBU: 재설정 동선
30휴대폰 인증 탭-ID → 인증번호 받기 → SMS OTP 검증LoginOtpCode
ㄴ31IDInput• 직원 ID를 입력받는 필드
• 입력 → 직원 ID 반영
ㄴ32인증번호 받기Button• 입력한 ID로 SMS OTP 발송을 요청하는 기능
• 클릭 → SMS OTP 발송, 발송 중 "발송 중..." 표시
 - CASE01 [ID 미입력]: disabled
LoginOtpCode 생성TBU: 발송 실패 UI·재발송 쿨다운
ㄴ33인증번호 입력Input• SMS OTP를 입력·검증해 로그인하는 필드
• 입력 → 검증 통과 시 근무 탭 홈 전환
${employee_session} 발급⚠ 계정 레이어 7/16 확인
TBU: OTP 불일치·만료 처리
40푸터Text"© 2026 Hereby Platform"원문 카피

서브 화면 / 모달

현재 라이브에서 로그인 화면에 딸린 별도 모달·바텀시트·팝업은 관찰되지 않음. 비밀번호 찾기 재설정 화면 존재 여부 = TBU(별도 문서 승격 대상 후보).

권한·상태 분기 요약

시나리오트리거결과 화면비고
CASE01 [비밀번호 로그인]ID+비밀번호 입력 → 로그인근무 탭 홈(self scope)
CASE02 [휴대폰 인증]ID → 인증번호 받기 → OTP 검증근무 탭 홈LoginOtpCode
CASE03 [입력 미완]ID/비밀번호 공란로그인 버튼 disabled무반응 정상(버그 아님)

Open Question

  • 계정 레이어 전환(7/16 코드) 라이브 재확인 → 해소(2026-08-19 실증): 브랜딩("hereby 웍스"+조직명)·탭 2종·disabled 로그인·비밀번호 찾기 실측 확인. 세션 발급 procedure 확정값은 여전히 TBU
  • 비밀번호 찾기 동선(재설정 방식) = TBU
  • OTP 유효시간·재발송 정책(LoginOtpCode expiry·쿨다운) = TBU
  • 로그인 실패 잠금 정책(N회 실패 시 계정 잠금 여부) = TBU
  • 가입(신규 계정 생성) 동선의 EA 내 존재 여부 = TBU (직원 계정은 Admin 등록 경로 추정)