이메일 인증 코드 발송 로직 및 구현
인증 코드 발송 처리 흐름
시스템은 사용자에게 이메일 인증 코드를 전송하기 전, 여러 단계의 제한 조건을 검사하여 과도한 요청을 방지합니다.
1. 첫 번째 수준의 요청 제한 확인
해당 전화번호에 대해 최근 5분 내에 이미 요청이 있었는지를 확인합니다. Redis의 Set 자료구조를 이용하며, 키는 "limit:first_level:{전화번호}", 값은 "1"로 저장됩니다.
Boolean firstL ...
8월 7일 06:50에 게시됨
Django REST Framework: 인증, 권한, 요청 제한 구현
시작하기: 애플리케이션 및 관리자 설정
Django REST Framework (DRF)의 인증, 권한, 요청 제한 기능을 학습하기 위해 먼저 새로운 Django 서브 애플리케이션을 생성하고 관리자 계정을 설정하겠습니다.
python manage.py startapp opt_api
이후 로그인 기능이 필요하므로 Django 내장 관리자 사이트를 활용하고 슈퍼유저를 생성합니다.
python3 manage.py makemigrations ...
7월 18일 20:19에 게시됨
Django REST Framework 인증, 필터링, 정렬, 페이징 컴포넌트
Django REST Framework에서 제공하는 컴포넌트들은 유사한 구성 방식을 가지고 있습니다. 이들 컴포넌트는 클래스를 상속한 후, 해당 클래스 내에서 필요한 매개변수를 설정하고, 뷰 클래스에 해당 컴포넌트를 추가하거나 전역 설정을 통해 쉽게 사용할 수 있습니다. 이러한 컴포넌트들은 매우 유용하며, 개발 과정에서 자주 사용될 것입니다.
인증 컴포넌트
어떤 인터페이 ...
7월 15일 01:56에 게시됨
우아이드 프로그램에서 사용자 인증 방법 (Django 백엔드 활용)
우아이드 프로그램에서 사용자를 식별하는 방법은 다음과 같습니다:
대부분의 웹 개발자들은 클라이언트가 요청을 보내면, 서버는 세션에 user_id를 저장하고 이를 통해 다음 요청에서 사용자를 식별할 수 있음을 알고 있습니다. 그러나 우아이드 프로그램에서는 유일한 식별자가 없으며, 닉네임이나 성별 등의 정보만 존재합니다. 이러한 정보가 사용자에 의해 변경될 경 ...
7월 13일 19:45에 게시됨
JWT(Json Web Token)의 원리와 실용적 활용
JWT란 무엇인가?
JWT(Json Web Token)는 RFC 7519에 정의된 표준으로, 네트워크 환경에서 안전하고 간결하게 정보를 전달하기 위한 방식입니다.
주로 사용자 인증이나 서비스 간 신뢰 기반 데이터 교환에 사용되며, 특히 단일 로그인(SSO), 마이크로서비스 아키텍처,
그리고 프론트엔드-백엔드 분리 구조에서 널리 채택됩니다. 이 토큰은 JSON 형식으로 구성되며 ...
7월 4일 18:52에 게시됨
Spring Security 설정 가이드
@EnableWebSecurity 어노테이션
@EnableWebSecurity 어노테이션은 WebSecurity 모드를 활성화하는 역할을 담당합니다. 이는 Spring Security에서 웹 보안을 설정하기 위해 반드시 필요한 어노테이션입니다.
Spring Boot를 사용하지 않는 일반 Spring Web MVC 프로젝트에서는 해당 어노테이션을 명시적으로 추가해야 합니다. 반면, Spring Boot 기반의 Spring Web MVC 애플 ...
6월 24일 00:55에 게시됨
Django 기반 영화 매장의 인증, 리뷰 및 주문 프로세스 구축
사용자 인증 시스템 구성
Django 웹 애플리케이션에서 사용자 관리 기능은 보안과 신뢰성을 확보하는 데 필수적입니다. 외부 라이브러리에 의존하지 않고 Django 내장 인증 시스템을 활용하여 등록, 로그인, 로그아웃 기능을 구현해 보겠습니다. 이를 위해 별도의 accounts 앱을 생성하고 기존 프로젝트 설정에 통합합니다.
앱 생성 및 설정 적용
프로젝트 루트 디렉토리 ...
6월 21일 00:38에 게시됨
.NET 5에서 Swagger를 통한 JWT 인증 활성화
Startup.cs 파일 수정
수정이 필요한 주요 부분은 서비스 구성 및 미들웨어 파이프라인 설정입니다.
미들웨어 순서 확인
app.UseAuthentication();
app.UseAuthorization();
이 두 줄의 순서는 매우 중요합니다. 인증 처리는 반드시 권한 검사보다 먼저 이루어져야 합니다. 즉, 사용자 신원을 먼저 확인한 후, 그 사용자가 접근할 수 있는 리소스를 판단해야 하므로, ...
6월 20일 22:19에 게시됨
MySQL 사용자 관리 및 권한 설정
사용자 생성
CREATE USER 명령어로 사용자 추가
CREATE USER 'guest'@'%' IDENTIFIED BY 'securepass123';
비밀번호가 필요하지 않은 경우 IDENTIFIED BY 절을 생략할 수 있습니다.
mysql.user 테이블 직접 삽입 (주의: 필드 값 필수)
INSERT INTO mysql.user (
Host, User, authentication_string,
ssl_cipher, x509_issuer, x509_subject
) VALUES (
' ...
6월 20일 18:10에 게시됨
리눅스 PAM 인증 모듈의 구조와 실무 설정 가이드
PAM(Pluggable Authentication Modules) 개요
리눅스 환경에서 login, su, sshd와 같은 프로그램은 사용자의 신원을 확인하고 권한을 부여하기 위해 PAM을 사용합니다. PAM은 동적으로 로드되는 인증 모듈 집합으로, 애플리케이션의 소스 코드를 재컴파일하지 않고도 인증 로직과 정책을 유연하게 변경할 수 있게 해줍니다.
설정 파일 구조 및 문법
PAM 설정은 주로 /etc/ ...
6월 17일 02:49에 게시됨