members.uwksa.ca 설명 (레거시)¶
이 문서는 members.uwksa.ca 서비스의 현재 구조를 기준으로 정리한 레거시 설명입니다.
주의
운영 구조가 변경될 수 있으므로, 실제 운영 전에 코드와 서버 상태를 함께 확인하세요.
개요¶
| 항목 | 값 |
|---|---|
| URL | members.uwksa.ca |
| 목적 | UWKSA 멤버 인증, QR 검증, 멤버십 신청 운영 |
| 백엔드 | Flask + Authlib(OIDC) |
| DB | SQLite (database.db, database/test-signups.db) |
| 배포 형태 | systemd 서비스 (members.uwksa.ca) |
핵심 기능¶
1) 멤버 인증/검증¶
- 학교 계정(OIDC) 로그인 후 세션 생성
- 멤버 여부 확인 후 미가입자는
/join으로 리다이렉트 /qr-code에서 짧은 만료 시간(30초) JWT QR 발급/verify에서 QR 토큰 검증 및 사용자 표시
2) 멤버 목록 동기화¶
- 소스 파일:
database/members.txt - 변환:
database/txt-to-json.py - DB 동기화:
database/update-members.py - 운영 스크립트:
add-member.sh
동기화 특성
현재 동기화 스크립트는 목록에 있는 사용자만 is_member=1로 설정합니다.
목록에서 제거된 사용자의 비활성화(is_member=0)는 자동 처리되지 않습니다.
3) 신청/운영 기능¶
/signup: 신규 신청 폼 제출- WatCard 이미지 업로드
- 이미지 검증(photo processor) 및 저장
- 결제 안내 확인 체크박스 검증
/manage: 운영자 전용 신청 관리 화면MANAGE_ALLOWED_USERNAMES허용 목록 기반 접근 제어- 제출 건 승인/미승인 상태 전환
운영 시 체크 포인트¶
- 필수 환경변수:
SECRET_KEY,OIDC_CLIENT_ID,OIDC_CLIENT_SECRET,OIDC_DISCOVERY_URL - 운영자 페이지 권한:
MANAGE_ALLOWED_USERNAMES - 서비스 재시작:
sudo systemctl restart members.uwksa.ca - WatCard 이미지 경로:
static/images/WATCards/
관련 파일¶
- 앱 엔트리:
membership.py,wsgi.py - 런타임 설정:
config.py - 멤버 동기화:
add-member.sh,database/txt-to-json.py,database/update-members.py - 템플릿:
templates/base.html,templates/verify.html,templates/signup.html,templates/manage_signups.html