Dreamine.Identity
Dreamine 및 CodeMaru 웹 애플리케이션에서 공유하는 계정/인증 인프라 라이브러리입니다.
Dreamine.Identity는 이메일/비밀번호 계정, OAuth 로그인, SQLite 기반 사용자 저장소, 서브도메인 공유 인증 쿠키, 기본 로그인/계정 페이지를 제공합니다.
목적
여러 Dreamine 또는 CodeMaru 서비스가 같은 로그인 상태를 공유해야 할 때 사용합니다.
대표적인 사용 대상:
codemaru.co.krwedding.codemaru.co.krthankyou.codemaru.co.kr- 같은 계정 DB를 공유해야 하는 향후 Dreamine 계열 서비스
이 패키지는 의도적으로 작게 유지합니다. 서비스별 소유권 규칙, 테넌트 데이터, 권한 정책, 도메인 기능은 각 애플리케이션에 둡니다.
주요 기능
- 이메일/비밀번호 기반 회원가입 및 로그인
- Google OAuth 로그인
- Naver OAuth 로그인
- Kakao OAuth 로그인
- 서브도메인 간 인증 쿠키 공유
- 여러 서버 프로세스가 같은 쿠키를 읽기 위한 DataProtection 키 공유
- Dreamine Database 기반 SQLite 사용자 저장소
- 기본 로그인, 회원가입, 계정, 로그아웃 페이지
- WPF/Blazor 하이브리드 호스트 연동 헬퍼
주요 타입
AuthOptionsOAuthProviderOptionsAuthUserIUserStoreSqliteUserStoreAnonymousAuthenticationStateProviderDreamineIdentityExtensions
DreamineIdentityExtensions가 제공하는 주요 Claim 타입:
DreamineUserIdDreamineProvider
서비스 데이터와 로그인 계정을 연결할 때는 DreamineUserId를 안정적인 내부 사용자 키로 사용합니다.
패키지 경계
이 패키지가 담당하는 것:
- 계정 생성
- 비밀번호 검증 및 변경
- OAuth 콜백 처리
- 사용자 레코드 저장
- 인증 쿠키 설정
- 로그인/계정 HTML 엔드포인트
이 패키지가 담당하지 않는 것:
- 서비스별 테넌트 레코드
- 청첩장 소유권
- 명함 랜딩 페이지 소유권
- CCTV 스트림 권한
- 결제, 역할, 관리자 정책
이런 규칙은 각 소비 애플리케이션에서 관리합니다.
빠른 시작
1. 프로젝트 참조 추가
<ItemGroup>
<ProjectReference Include="..\..\..\100. Library\Identity\Dreamine.Identity.csproj" />
</ItemGroup>
2. 인증 설정 추가
{
"Authentication": {
"UsersDbPath": "C:\\Codemaru\\App_Data\\codemaru.db",
"Google": {
"ClientId": "",
"ClientSecret": ""
},
"Naver": {
"ClientId": "",
"ClientSecret": ""
},
"Kakao": {
"ClientId": "",
"ClientSecret": ""
},
"CookieDomain": ".codemaru.co.kr",
"CookieName": ".Dreamine.Identity",
"DataProtectionKeysPath": "C:\\Codemaru\\App_Data\\IdentityKeys",
"DataProtectionApplicationName": "Dreamine.Identity"
}
}
OAuth Client Secret은 user-secrets, 환경 변수, 서버 전용 설정 파일에 보관합니다. 실제 시크릿 값을 저장소에 커밋하지 마세요.
3. WPF 호스트 헬퍼 등록
using Dreamine.Identity;
builder.Services.AddDreamineIdentityWpfHost();
WPF 호스트 쪽에서 안전하게 사용할 수 있는 AuthenticationStateProvider를 등록합니다.
4. Blazor 서버 호스트에 Identity 등록
using Dreamine.Identity;
using Dreamine.Identity.Options;
var authOptions = builder.Configuration
.GetSection(AuthOptions.SectionName)
.Get<AuthOptions>() ?? new AuthOptions();
var usersDbPath = builder.Configuration[$"{AuthOptions.SectionName}:UsersDbPath"]
?? Path.Combine(AppContext.BaseDirectory, "App_Data", "codemaru.db");
options.AddDreamineIdentity(authOptions, usersDbPath);
AddDreamineIdentity(...)가 연결하는 구성:
IUserStore- SQLite 사용자 DB provider
- 쿠키 인증
- OAuth provider
- 인증/인가 middleware
- 기본 인증 엔드포인트
기본 엔드포인트
표준 엔드포인트:
GET /_identity/loginPOST /_identity/loginPOST /_identity/signupGET /_identity/accountPOST /_identity/accountGET /_identity/signout
호환 alias:
/login/signup/account/signout
OAuth challenge 엔드포인트:
GET /signin/googleGET /signin/naverGET /signin/kakao
OAuth callback 경로:
/signin-google/signin-naver/signin-kakao
로그인을 시작할 수 있는 모든 배포 도메인에 대해 각 provider 콘솔에 callback URL을 등록해야 합니다.
공유 로그인 필수 조건
서브도메인 간 로그인 공유를 하려면 참여하는 모든 앱이 아래 값을 동일하게 사용해야 합니다.
{
"CookieDomain": ".codemaru.co.kr",
"CookieName": ".Dreamine.Identity",
"DataProtectionKeysPath": "C:\\Codemaru\\App_Data\\IdentityKeys",
"DataProtectionApplicationName": "Dreamine.Identity",
"UsersDbPath": "C:\\Codemaru\\App_Data\\codemaru.db"
}
이 중 하나라도 다르면 한 서비스에서는 로그인 상태인데 다른 서비스에서는 익명 사용자로 보일 수 있습니다.
localhost 개발 환경에서는 운영 도메인의 서브도메인 공유 쿠키와 동작이 다릅니다. 로컬 테스트에서는 각 포트별 callback URL을 등록하고, 앱을 서로 격리해서 테스트할 때는 CookieDomain을 비워두는 것이 안전합니다.
계정 모델
AuthUser는 provider identity 하나당 하나의 계정 레코드를 저장합니다.
논리적 자연키:
(Provider, ProviderKey)
같은 이메일 주소가 노출되더라도 provider가 다르면 별도 identity로 취급합니다. 서비스 앱은 이메일, 표시 이름, 닉네임, provider별 계정 문자열이 아니라 내부 AuthUser.Id를 소유권 키로 저장해야 합니다.
의존성
Dreamine.Database.AbstractionsDreamine.Database.CoreDreamine.Database.SqliteDreamine.Hybrid.WpfMicrosoft.AspNetCore.AppMicrosoft.AspNetCore.Authentication.GoogleAspNet.Security.OAuth.NaverAspNet.Security.OAuth.KakaoTalkMicrosoft.AspNetCore.Components.Authorization
대상 프레임워크
net8.0-windows7.0
라이선스
MIT License
구조 다이어그램
classDiagram
class DreamineIdentityExtensions {
<<static>>
+AddDreamineIdentityWeb(IServiceCollection, AuthOptions, string) IServiceCollection
+AddDreamineIdentityWpfHost(IServiceCollection) IServiceCollection
+AddDreamineIdentity(HostOptions, AuthOptions, string) HostOptions
+MapDreamineIdentityEndpoints(IEndpointRouteBuilder) IEndpointRouteBuilder
}
class AuthOptions {
+string CookieDomain
+string CookieName
+string DataProtectionKeysPath
+string DataProtectionApplicationName
+OAuthProviderOptions Google
+OAuthProviderOptions Naver
+OAuthProviderOptions Kakao
}
class OAuthProviderOptions {
+string ClientId
+string ClientSecret
+bool IsConfigured
}
class IUserStore {
<<interface>>
+UpsertAsync(...) Task~AuthUser~
+GetByIdAsync(long) Task~AuthUser~
+CreateLocalAsync(...) Task~AuthUser~
+ValidateLocalAsync(...) Task~AuthUser~
+ChangeLocalPasswordAsync(...) Task~AuthUser~
+UpdateDisplayNameAsync(long, string) Task~AuthUser~
}
class SqliteUserStore {
+UpsertAsync(...) Task~AuthUser~
+GetByIdAsync(long) Task~AuthUser~
+CreateLocalAsync(...) Task~AuthUser~
+ValidateLocalAsync(...) Task~AuthUser~
}
class AuthUser {
+long Id
+string Provider
+string ProviderKey
+string Email
+string DisplayName
+string AvatarUrl
+string PasswordHash
+DateTime CreatedAt
+DateTime LastLoginAt
}
class AnonymousAuthenticationStateProvider {
+GetAuthenticationStateAsync() Task~AuthenticationState~
}
class AuthenticationStateProvider {
<<abstract>>
}
IUserStore <|.. SqliteUserStore
SqliteUserStore --> AuthUser
AuthOptions --> OAuthProviderOptions
DreamineIdentityExtensions --> AuthOptions
DreamineIdentityExtensions --> IUserStore
AnonymousAuthenticationStateProvider --|> AuthenticationStateProviderAPI 문서
타입
\if KO 항상 익명 인증 상태를 반환하는 입니다. \endif \if EN Provides an that always returns an anonymous state. \endif
\if KO 로그인, 가입, 계정, 필수 동의 및 로그아웃 HTTP 엔드포인트를 매핑하고 해당 HTML을 생성합니다. \endif \if EN Maps login, signup, account, required-consent, and sign-out HTTP endpoints and generates their HTML. \endif
\if KO OAuth 로그인 공급자와 공유 인증 쿠키의 구성 옵션입니다. \endif \if EN Represents configuration options for OAuth login providers and the shared authentication cookie. \endif
\if KO 소셜 또는 로컬 로그인으로 인증된 사용자 레코드를 나타냅니다. \endif \if EN Represents a user record authenticated through social or local login. \endif
\if KO Dreamine 애플리케이션에 공유 쿠키, 로컬 계정 및 OAuth 로그인을 통합하는 확장 메서드를 제공합니다. \endif \if EN Provides extensions that integrate shared cookies, local accounts, and OAuth login into Dreamine applications. \endif
\if KO Dreamine 계열 서비스가 공통으로 사용하는 버전 지정 PBKDF2 비밀번호 해시 기능을 제공합니다. \endif \if EN Provides versioned PBKDF2 password hashing shared by Dreamine services. \endif
\if KO 외부 및 로컬 로그인 사용자의 저장·조회·계정 관리 계약을 정의합니다. \endif \if EN Defines persistence, lookup, and account-management operations for external and local login users. \endif
\if KO 개별 OAuth 공급자의 클라이언트 자격 증명을 나타냅니다. \endif \if EN Represents client credentials for an individual OAuth provider. \endif
\if KO 비밀번호 해시 검증 결과와 재해시 필요 여부를 나타냅니다. \endif \if EN Represents a password-hash verification result and whether rehashing is required. \endif
\if KO 인증 사용자의 필수 약관 동의 완료 여부를 판정합니다. \endif \if EN Evaluates whether an authenticated user has completed all required consents. \endif
\if KO Dreamine 데이터베이스 추상화를 사용하는 SQLite 기반 구현입니다. \endif \if EN Provides a SQLite-backed implementation using the Dreamine database abstractions. \endif
\if KO SQLite PRAGMA table_info 결과에서 열 이름만 매핑하는 내부 모델입니다. \endif \if EN Represents the internal name-only mapping of a SQLite PRAGMA table_info row. \endif
AnonymousAuthenticationStateProvider
\if KO 캐시된 익명 인증 상태를 반환합니다. \endif \if EN Returns the cached anonymous authentication state. \endif
반환: \if KO 익명 ClaimsPrincipal을 포함한 완료된 작업입니다. \endif \if EN A completed task containing an anonymous ClaimsPrincipal. \endif
\if KO Anonymous State 값을 보관합니다. \endif \if EN Stores the anonymous state value. \endif
AuthEndpoints
\if KO 사용자 프로필과 로그인 방식에 맞는 계정 관리 HTML을 만듭니다. \endif \if EN Builds account-management HTML appropriate for the user's profile and login method. \endif
user— \if KO 표시할 사용자입니다. \endif \if EN The user to display. \endifreturnUrl— \if KO 계정 화면에서 돌아갈 안전한 URL입니다. \endif \if EN The safe URL to return to from the account page. \endifmessage— \if KO 선택적 성공 메시지입니다. \endif \if EN The optional success message. \endiferror— \if KO 선택적 오류 메시지입니다. \endif \if EN The optional error message. \endifroutePrefix— \if KO 폼 및 링크 경로 접두사입니다. \endif \if EN The form and link route prefix. \endif반환: \if KO 완성된 계정 HTML입니다. \endif \if EN The completed account HTML. \endif
\if KO 이용약관, 개인정보 및 연령 확인 입력을 포함한 필수 동의 HTML을 만듭니다. \endif \if EN Builds required-consent HTML containing terms, privacy, and age-confirmation inputs. \endif
returnUrl— \if KO 동의 후 이동할 안전한 URL입니다. \endif \if EN The safe URL to visit after consent. \endiferror— \if KO 선택적 오류 메시지입니다. \endif \if EN The optional error message. \endifroutePrefix— \if KO 폼 작업 경로 접두사입니다. \endif \if EN The form-action route prefix. \endif반환: \if KO 완성된 동의 HTML입니다. \endif \if EN The completed consent HTML. \endif
\if KO 로그인 또는 가입 모드의 독립 실행형 HTML 문서를 만듭니다. \endif \if EN Builds a standalone HTML document in login or signup mode. \endif
returnUrl— \if KO 인증 후 이동할 안전한 URL입니다. \endif \if EN The safe URL to visit after authentication. \endifmode— \if KO signup이면 가입 화면을 선택하는 모드입니다. \endif \if EN The mode selecting signup when equal to signup. \endifmessage— \if KO 선택적 안내 메시지입니다. \endif \if EN The optional informational message. \endiferror— \if KO 선택적 오류 메시지입니다. \endif \if EN The optional error message. \endifroutePrefix— \if KO 폼 작업 경로 접두사입니다. \endif \if EN The form-action route prefix. \endif반환: \if KO 완성된 로그인 또는 가입 HTML입니다. \endif \if EN The completed login or signup HTML. \endif
\if KO 현재 사용자 클레임에서 내부 사용자 ID를 읽습니다. \endif \if EN Reads the internal user ID from the current user's claims. \endif
http— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endif반환: \if KO 파싱된 사용자 ID 또는 없으면 입니다. \endif \if EN The parsed user ID, or when absent. \endif
\if KO 현재 사용자를 조회하여 계정 페이지를 반환하거나 로그인을 요구합니다. \endif \if EN Loads the current user and returns the account page or requires login. \endif
http— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endifuserStore— \if KO 사용자 저장소입니다. \endif \if EN The user store. \endifreturnUrl— \if KO 계정 화면에서 돌아갈 URL입니다. \endif \if EN The URL to return to from the account page. \endifmessage— \if KO 선택적 성공 메시지입니다. \endif \if EN The optional success message. \endiferror— \if KO 선택적 오류 메시지입니다. \endif \if EN The optional error message. \endifroutePrefix— \if KO 인증 경로 접두사입니다. \endif \if EN The authentication route prefix. \endif반환: \if KO 계정 HTML 또는 리디렉션 결과입니다. \endif \if EN The account HTML or redirect result. \endif
\if KO 계정 폼에서 표시 이름 또는 로컬 비밀번호 변경 요청을 처리합니다. \endif \if EN Handles a display-name or local-password change submitted from the account form. \endif
http— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endifuserStore— \if KO 사용자 저장소입니다. \endif \if EN The user store. \endifroutePrefix— \if KO 인증 경로 접두사입니다. \endif \if EN The authentication route prefix. \endif반환: \if KO 계정 갱신 또는 오류 리디렉션 결과입니다. \endif \if EN The account-update or error-redirect result. \endif
\if KO 현재 사용자의 필수 동의를 확인하고 필요할 때 동의 페이지를 반환합니다. \endif \if EN Checks the current user's required consents and returns the consent page when needed. \endif
http— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endifuserStore— \if KO 사용자 저장소입니다. \endif \if EN The user store. \endifreturnUrl— \if KO 동의 후 이동할 URL입니다. \endif \if EN The URL to visit after consent. \endiferror— \if KO 선택적 오류 메시지입니다. \endif \if EN The optional error message. \endifroutePrefix— \if KO 인증 경로 접두사입니다. \endif \if EN The authentication route prefix. \endif반환: \if KO 동의 HTML 또는 리디렉션 결과입니다. \endif \if EN The consent HTML or redirect result. \endif
\if KO 제출된 필수 동의를 검증하고 사용자 레코드 및 로그인 쿠키를 갱신합니다. \endif \if EN Validates submitted required consents and updates the user record and login cookie. \endif
http— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endifuserStore— \if KO 사용자 저장소입니다. \endif \if EN The user store. \endifroutePrefix— \if KO 인증 경로 접두사입니다. \endif \if EN The authentication route prefix. \endif반환: \if KO 동의 처리 또는 리디렉션 결과입니다. \endif \if EN The consent-processing or redirect result. \endif
\if KO 로컬 로그인 폼을 읽고 사용자를 검증하여 쿠키 로그인 또는 오류 리디렉션을 반환합니다. \endif \if EN Reads a local-login form, validates the user, and returns a cookie sign-in or error redirect. \endif
http— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endifuserStore— \if KO 사용자 저장소입니다. \endif \if EN The user store. \endifroutePrefix— \if KO 인증 경로 접두사입니다. \endif \if EN The authentication route prefix. \endif반환: \if KO 로그인 결과입니다. \endif \if EN The login result. \endif
\if KO 가입 폼의 필수 동의와 비밀번호 확인을 검증하고 로컬 계정을 생성합니다. \endif \if EN Validates required consents and password confirmation in a signup form, then creates a local account. \endif
http— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endifuserStore— \if KO 사용자 저장소입니다. \endif \if EN The user store. \endifroutePrefix— \if KO 인증 경로 접두사입니다. \endif \if EN The authentication route prefix. \endif반환: \if KO 가입, 로그인 또는 오류 리디렉션 결과입니다. \endif \if EN The signup, sign-in, or error-redirect result. \endif
\if KO 가입 폼의 세 필수 동의 확인란이 모두 선택되었는지 확인합니다. \endif \if EN Determines whether all three required consent checkboxes are selected in a signup form. \endif
form— \if KO 검사할 가입 폼입니다. \endif \if EN The signup form to inspect. \endif반환: \if KO 모두 선택되었으면 입니다. \endif \if EN when all are selected. \endif
\if KO 선택적 값을 HTML 텍스트 또는 특성에 안전하게 인코딩합니다. \endif \if EN Safely HTML-encodes an optional value for text or attribute use. \endif
value— \if KO 인코딩할 값입니다. \endif \if EN The value to encode. \endif반환: \if KO HTML 인코딩된 문자열입니다. \endif \if EN The HTML-encoded string. \endif
\if KO 호스트가 CodeMaru 도메인 또는 허용된 로컬 개발 호스트인지 확인합니다. \endif \if EN Determines whether a host is a CodeMaru domain or an allowed local development host. \endif
host— \if KO 검사할 호스트 이름입니다. \endif \if EN The host name to inspect. \endif반환: \if KO 허용된 호스트이면 입니다. \endif \if EN for an allowed host. \endif
\if KO 폼 값이 일반적인 선택 상태 표현인지 확인합니다. \endif \if EN Determines whether a form value represents a common checked state. \endif
value— \if KO 폼 값입니다. \endif \if EN The form value. \endif반환: \if KO true, on 또는 1이면 입니다. \endif \if EN for true, on, or 1. \endif
\if KO 사용자 에이전트가 알려진 모바일 앱 내부 브라우저인지 확인합니다. \endif \if EN Determines whether a user agent belongs to a known embedded mobile-app browser. \endif
userAgent— \if KO 검사할 User-Agent 헤더 값입니다. \endif \if EN The User-Agent header value to inspect. \endif반환: \if KO 알려진 앱 내부 브라우저이면 입니다. \endif \if EN for a known embedded app browser. \endif
\if KO 접두사가 있는 경로와 짧은 호환 경로에 모든 Dreamine 인증 엔드포인트를 등록합니다. \endif \if EN Registers all Dreamine authentication endpoints under prefixed and short compatibility routes. \endif
endpoints— \if KO 경로를 등록할 엔드포인트 작성기입니다. \endif \if EN The endpoint builder receiving the routes. \endif\if KO 오픈 리디렉션을 막기 위해 로컬 경로 또는 허용된 CodeMaru/개발 호스트 URL만 반환합니다. \endif \if EN Prevents open redirects by accepting only local paths or allowed CodeMaru and development-host URLs. \endif
returnUrl— \if KO 검증할 반환 URL입니다. \endif \if EN The return URL to validate. \endif반환: \if KO 안전한 반환 URL이며 유효하지 않으면 루트 경로입니다. \endif \if EN The safe return URL, or the root path when invalid. \endif
\if KO 사용자 프로필과 내부 식별 클레임으로 지속 인증 쿠키를 발급합니다. \endif \if EN Issues a persistent authentication cookie with profile and internal-identity claims. \endif
http— \if KO 쿠키를 발급할 HTTP 컨텍스트입니다. \endif \if EN The HTTP context receiving the cookie. \endifuser— \if KO 로그인할 사용자입니다. \endif \if EN The user to sign in. \endif반환: \if KO 쿠키 로그인 작업입니다. \endif \if EN A task representing cookie sign-in. \endif
\if KO 선택적 값을 URL 쿼리 구성 요소로 이스케이프합니다. \endif \if EN Escapes an optional value for use as a URL query component. \endif
value— \if KO 이스케이프할 값입니다. \endif \if EN The value to escape. \endif반환: \if KO URL 이스케이프된 문자열입니다. \endif \if EN The URL-escaped string. \endif
\if KO Local Provider 값을 보관합니다. \endif \if EN Stores the local provider value. \endif
AuthOptions
\if KO 서브도메인 간 로그인 공유용 쿠키 도메인을 가져오거나 설정합니다. \endif \if EN Gets or sets the cookie domain used to share login across subdomains. \endif
\if KO 서브도메인 애플리케이션이 공유할 인증 쿠키 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the authentication-cookie name shared by subdomain applications. \endif
\if KO 공유 로그인 애플리케이션이 동일하게 사용해야 하는 Data Protection 애플리케이션 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the Data Protection application name that must match across shared-login applications. \endif
\if KO 여러 프로세스가 동일한 인증 쿠키를 해독하는 데 사용할 Data Protection 키 디렉터리를 가져오거나 설정합니다. \endif \if EN Gets or sets the Data Protection key directory used by multiple processes to decrypt the same authentication cookie. \endif
\if KO Google OAuth 자격 증명을 가져오거나 설정합니다. \endif \if EN Gets or sets the Google OAuth credentials. \endif
\if KO Kakao OAuth 자격 증명을 가져오거나 설정합니다. \endif \if EN Gets or sets the Kakao OAuth credentials. \endif
\if KO Naver OAuth 자격 증명을 가져오거나 설정합니다. \endif \if EN Gets or sets the Naver OAuth credentials. \endif
\if KO 기본 구성 섹션 이름을 가져옵니다. \endif \if EN Gets the default configuration-section name. \endif
AuthUser
\if KO 만 14세 이상임을 확인한 UTC 시각을 가져오거나 설정합니다. \endif \if EN Gets or sets the UTC time at which the minimum-age confirmation was recorded. \endif
\if KO 프로필 이미지 URL을 가져오거나 설정합니다. \endif \if EN Gets or sets the profile-image URL. \endif
\if KO 최초 가입 UTC 시각을 가져오거나 설정합니다. \endif \if EN Gets or sets the UTC registration time. \endif
\if KO 사용자 표시 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the user's display name. \endif
\if KO 사용자 이메일 주소를 가져오거나 설정합니다. \endif \if EN Gets or sets the user's email address. \endif
\if KO 데이터베이스에서 생성된 내부 사용자 식별자를 가져오거나 설정합니다. \endif \if EN Gets or sets the database-generated internal user identifier. \endif
\if KO 마지막 로그인 UTC 시각을 가져오거나 설정합니다. \endif \if EN Gets or sets the UTC time of the most recent login. \endif
\if KO 로컬 이메일 로그인용 비밀번호 해시를 가져오거나 설정합니다. \endif \if EN Gets or sets the password hash used for local email login. \endif
\if KO 개인정보처리방침에 동의한 UTC 시각을 가져오거나 설정합니다. \endif \if EN Gets or sets the UTC time at which the privacy policy was accepted. \endif
\if KO 로그인 공급자 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the login-provider name. \endif
\if KO 공급자가 부여한 사용자 식별자를 가져오거나 설정합니다. \endif \if EN Gets or sets the user identifier assigned by the provider. \endif
\if KO 이용약관에 동의한 UTC 시각을 가져오거나 설정합니다. \endif \if EN Gets or sets the UTC time at which the terms were accepted. \endif
DreamineIdentityExtensions
\if KO 값이 있고 같은 형식의 클레임이 없을 때만 클레임을 추가합니다. \endif \if EN Adds a claim only when its value is present and no claim of the same type exists. \endif
identity— \if KO 수정할 클레임 ID입니다. \endif \if EN The claims identity to modify. \endiftype— \if KO 클레임 형식입니다. \endif \if EN The claim type. \endifvalue— \if KO 클레임 값입니다. \endif \if EN The claim value. \endif\if KO 일반 ASP.NET Core 웹 애플리케이션에 Dreamine Identity 공유 쿠키와 로그인 서비스를 등록합니다. \endif \if EN Registers Dreamine Identity shared-cookie and login services in a regular ASP.NET Core web application. \endif
options— \if KO 수정할 Blazor Server 호스트 옵션입니다. \endif \if EN The Blazor Server host options to modify. \endifauthOptions— \if KO 인증 공급자와 쿠키 옵션입니다. \endif \if EN The authentication-provider and cookie options. \endifdatabasePath— \if KO 사용자 SQLite 데이터베이스 파일 경로입니다. \endif \if EN The user SQLite database-file path. \endif반환: \if KO 수정된 동일한 호스트 옵션입니다. \endif \if EN The same modified host options. \endif
\if KO 일반 ASP.NET Core 웹 애플리케이션에 Dreamine Identity 공유 쿠키와 로그인 서비스를 등록합니다. \endif \if EN Registers Dreamine Identity shared-cookie and login services in a regular ASP.NET Core web application. \endif
services— \if KO 인증 서비스를 추가할 컬렉션입니다. \endif \if EN The collection receiving authentication services. \endifauthOptions— \if KO 인증 구성 옵션입니다. \endif \if EN The authentication options. \endifdatabasePath— \if KO 사용자 SQLite 파일 경로입니다. \endif \if EN The user SQLite-file path. \endif반환: \if KO 동일한 서비스 컬렉션입니다. \endif \if EN The same service collection. \endif
\if KO 포함된 BlazorWebView가 AuthorizeView를 사용할 수 있도록 WPF 호스트 DI에 익명 인증 상태를 등록합니다. \endif \if EN Registers anonymous authentication state in WPF host DI so an embedded BlazorWebView can use AuthorizeView. \endif
services— \if KO 인증 서비스를 추가할 컬렉션입니다. \endif \if EN The collection receiving authentication services. \endif반환: \if KO 동일한 서비스 컬렉션입니다. \endif \if EN The same service collection. \endif
\if KO 현재 요청의 경로 기준 반환 URL을 만듭니다. \endif \if EN Builds a path-based return URL for the current request. \endif
request— \if KO 현재 HTTP 요청입니다. \endif \if EN The current HTTP request. \endif반환: \if KO 경로, PathBase 및 쿼리를 포함한 반환 URL입니다. \endif \if EN The return URL containing PathBase, path, and query. \endif
\if KO 인증된 사용자의 필수 동의를 확인하고 미완료 사용자를 동의 화면으로 보냅니다. \endif \if EN Checks required consents for an authenticated user and redirects incomplete users to the consent page. \endif
context— \if KO 현재 HTTP 컨텍스트입니다. \endif \if EN The current HTTP context. \endifnext— \if KO 다음 미들웨어입니다. \endif \if EN The next middleware delegate. \endif반환: \if KO 동의 검사 또는 다음 미들웨어 실행 작업입니다. \endif \if EN A task representing consent inspection or execution of the next middleware. \endif
\if KO Dreamine Identity의 로컬 로그인, 가입, 동의 및 계정 엔드포인트를 현재 웹 애플리케이션에 매핑합니다. \endif \if EN Maps Dreamine Identity local-login, signup, consent, and account endpoints into the current web application. \endif
endpoints— \if KO 인증 경로를 추가할 엔드포인트 작성기입니다. \endif \if EN The endpoint builder receiving authentication routes. \endif반환: \if KO 동일한 엔드포인트 작성기입니다. \endif \if EN The same endpoint builder. \endif
\if KO 일반 OAuth 로그인 성공 시 공급자 클레임을 읽어 사용자를 저장하고 내부 클레임을 추가합니다. \endif \if EN On a general OAuth login success, reads provider claims, persists the user, and adds internal claims. \endif
context— \if KO OAuth 티켓 생성 컨텍스트입니다. \endif \if EN The OAuth ticket-creation context. \endifproviderName— \if KO 저장할 공급자 이름입니다. \endif \if EN The provider name to persist. \endif반환: \if KO 사용자 저장 및 클레임 추가 작업입니다. \endif \if EN A task representing user persistence and claim addition. \endif
\if KO Kakao 사용자 정보 API를 호출하여 프로필 클레임을 만들고 사용자를 저장합니다. \endif \if EN Calls the Kakao user-information API, creates profile claims, and persists the user. \endif
context— \if KO Kakao OAuth 티켓 생성 컨텍스트입니다. \endif \if EN The Kakao OAuth ticket-creation context. \endif반환: \if KO 사용자 정보 조회와 저장 작업입니다. \endif \if EN A task representing user-information retrieval and persistence. \endif
\if KO JSON 객체 속성의 문자열 또는 숫자 표현을 읽습니다. \endif \if EN Reads the string or numeric representation of a JSON object property. \endif
element— \if KO JSON 객체입니다. \endif \if EN The JSON object. \endifname— \if KO 읽을 속성 이름입니다. \endif \if EN The property name to read. \endif반환: \if KO 문자열 값이며 지원하지 않거나 없으면 빈 문자열입니다. \endif \if EN The string value, or an empty string when absent or unsupported. \endif
\if KO 사용자 저장소, 공유 쿠키, 구성된 OAuth 공급자 및 권한 서비스를 등록합니다. \endif \if EN Registers the user store, shared cookie, configured OAuth providers, and authorization services. \endif
services— \if KO 등록 대상 서비스 컬렉션입니다. \endif \if EN The target service collection. \endifauthOptions— \if KO 인증 및 쿠키 구성입니다. \endif \if EN The authentication and cookie configuration. \endifdatabasePath— \if KO 사용자 SQLite 파일 경로입니다. \endif \if EN The user SQLite-file path. \endif\if KO 인증, 정적 자산 및 프레임워크 경로가 동의 게이트를 건너뛰어야 하는지 확인합니다. \endif \if EN Determines whether authentication, static-asset, or framework paths bypass the consent gate. \endif
path— \if KO 검사할 요청 경로입니다. \endif \if EN The request path to inspect. \endif반환: \if KO 게이트를 건너뛰면 입니다. \endif \if EN when the gate should be skipped. \endif
\if KO JSON 객체에서 선택적 속성을 안전하게 읽습니다. \endif \if EN Safely reads an optional property from a JSON object. \endif
element— \if KO 검사할 JSON 요소입니다. \endif \if EN The JSON element to inspect. \endifname— \if KO 속성 이름입니다. \endif \if EN The property name. \endif반환: \if KO 속성 값 또는 없으면 입니다. \endif \if EN The property value, or when absent. \endif
\if KO 외부 로그인 사용자를 저장하고 내부 사용자 및 공급자 클레임을 현재 ID에 추가합니다. \endif \if EN Persists an external-login user and adds internal user and provider claims to the current identity. \endif
context— \if KO OAuth 티켓 생성 컨텍스트입니다. \endif \if EN The OAuth ticket-creation context. \endifproviderName— \if KO 공급자 이름입니다. \endif \if EN The provider name. \endifproviderKey— \if KO 공급자 사용자 키입니다. \endif \if EN The provider user key. \endifemail— \if KO 사용자 이메일입니다. \endif \if EN The user's email. \endifdisplayName— \if KO 사용자 표시 이름입니다. \endif \if EN The user's display name. \endifavatarUrl— \if KO 프로필 이미지 URL입니다. \endif \if EN The profile-image URL. \endif반환: \if KO 사용자 저장 및 클레임 추가 작업입니다. \endif \if EN A task representing persistence and claim addition. \endif
\if KO 로그인 공급자 이름을 저장하는 사용자 지정 클레임 형식을 가져옵니다. \endif \if EN Gets the custom claim type that stores the login-provider name. \endif
\if KO Provider Google 값을 보관합니다. \endif \if EN Stores the provider google value. \endif
\if KO Provider Kakao 값을 보관합니다. \endif \if EN Stores the provider kakao value. \endif
\if KO Provider Naver 값을 보관합니다. \endif \if EN Stores the provider naver value. \endif
\if KO 내부 사용자 ID를 저장하는 사용자 지정 클레임 형식을 가져옵니다. \endif \if EN Gets the custom claim type that stores the internal user ID. \endif
DreaminePasswordHasher
\if KO UTF-8 문자열을 길이 노출을 최소화하는 고정 시간 비교로 검사합니다. \endif \if EN Compares UTF-8 strings using fixed-time byte comparison after a length check. \endif
left— \if KO 첫 번째 값입니다. \endif \if EN The first value. \endifright— \if KO 두 번째 값입니다. \endif \if EN The second value. \endif반환: \if KO 값이 같으면 입니다. \endif \if EN when the values are equal. \endif
\if KO 임의 솔트와 현재 반복 횟수를 사용하여 비밀번호를 PBKDF2-SHA256 형식으로 해시합니다. \endif \if EN Hashes a password in the PBKDF2-SHA256 format using a random salt and the current iteration count. \endif
password— \if KO 해시할 평문 비밀번호입니다. \endif \if EN The plain-text password to hash. \endif반환: \if KO 버전, 반복 횟수, 솔트 및 해시를 포함한 저장 문자열입니다. \endif \if EN A storage string containing the version, iteration count, salt, and hash. \endif
\if KO 입력이 이미 지원되는 해시가 아니면 저장용 PBKDF2 해시로 변환합니다. \endif \if EN Converts input to a PBKDF2 storage hash unless it is already a supported hash. \endif
passwordOrHash— \if KO 평문 비밀번호 또는 기존 해시입니다. \endif \if EN A plain-text password or existing hash. \endif반환: \if KO 그대로 유지한 기존 해시 또는 새 PBKDF2 해시입니다. \endif \if EN The preserved existing hash or a new PBKDF2 hash. \endif
\if KO 값이 현재 Dreamine 버전 지정 해시 접두사로 시작하는지 확인합니다. \endif \if EN Determines whether a value starts with the current versioned Dreamine hash prefix. \endif
value— \if KO 검사할 값입니다. \endif \if EN The value to inspect. \endif반환: \if KO Dreamine 해시 형식이면 입니다. \endif \if EN when the value has the Dreamine hash format. \endif
\if KO 값이 64자 SHA-256 16진수 형식인지 확인합니다. \endif \if EN Determines whether a value has the 64-character SHA-256 hexadecimal form. \endif
storedHash— \if KO 검사할 값입니다. \endif \if EN The value to inspect. \endif반환: \if KO 레거시 형식이면 입니다. \endif \if EN for the legacy format. \endif
\if KO 비밀번호를 레거시 소문자 SHA-256 16진수 해시와 비교합니다. \endif \if EN Compares a password with a legacy lowercase SHA-256 hexadecimal hash. \endif
password— \if KO 평문 비밀번호입니다. \endif \if EN The plain-text password. \endifstoredHash— \if KO 저장된 레거시 해시입니다. \endif \if EN The stored legacy hash. \endif반환: \if KO 일치하면 입니다. \endif \if EN when the values match. \endif
\if KO PBKDF2, 레거시 SHA-256 또는 이전 평문 저장값과 비밀번호를 비교하고 필요하면 새 해시를 제공합니다. \endif \if EN Verifies a password against PBKDF2, legacy SHA-256, or former plain-text storage and supplies an upgraded hash when needed. \endif
password— \if KO 검증할 평문 비밀번호입니다. \endif \if EN The plain-text password to verify. \endifstoredHash— \if KO 저장된 해시 또는 레거시 값입니다. \endif \if EN The stored hash or legacy value. \endifupgradedHash— \if KO 재해시가 필요하면 새 PBKDF2 해시를 받습니다. \endif \if EN Receives a new PBKDF2 hash when rehashing is required. \endif반환: \if KO 실패, 성공 또는 재해시 필요 상태입니다. \endif \if EN The failed, successful, or rehash-required verification state. \endif
\if KO 비밀번호가 저장된 값과 일치하는지 확인합니다. \endif \if EN Determines whether a password matches the stored value. \endif
password— \if KO 검증할 평문 비밀번호입니다. \endif \if EN The plain-text password to verify. \endifstoredHash— \if KO 저장된 해시 또는 레거시 값입니다. \endif \if EN The stored hash or legacy value. \endif반환: \if KO 일치하면 , 그렇지 않으면 입니다. \endif \if EN when the password matches; otherwise, . \endif
\if KO 버전 지정 PBKDF2 저장 문자열을 구문 분석하고 고정 시간으로 검증합니다. \endif \if EN Parses and fixed-time verifies a versioned PBKDF2 storage string. \endif
password— \if KO 평문 비밀번호입니다. \endif \if EN The plain-text password. \endifstoredHash— \if KO 저장된 PBKDF2 문자열입니다. \endif \if EN The stored PBKDF2 string. \endifneedsRehash— \if KO 검증 성공 후 반복 횟수 업그레이드가 필요한지 받습니다. \endif \if EN Receives whether the iteration count needs upgrading after successful verification. \endif반환: \if KO 해시가 일치하면 입니다. \endif \if EN when the hash matches. \endif
\if KO Current Iterations 값을 보관합니다. \endif \if EN Stores the current iterations value. \endif
\if KO Hash Size 값을 보관합니다. \endif \if EN Stores the hash size value. \endif
\if KO Salt Size 값을 보관합니다. \endif \if EN Stores the salt size value. \endif
\if KO Version 값을 보관합니다. \endif \if EN Stores the version value. \endif
IUserStore
\if KO 필수 약관, 개인정보 및 연령 확인 동의를 기록합니다. \endif \if EN Records required terms, privacy, and age-confirmation consent. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifacceptedAtUtc— \if KO 모든 필수 동의를 수락한 UTC 시각입니다. \endif \if EN The UTC time at which all required consents were accepted. \endifcancellationToken— \if KO 갱신 취소 토큰입니다. \endif \if EN A token used to cancel the update. \endif반환: \if KO 갱신된 사용자 또는 없으면 입니다. \endif \if EN The updated user, or when absent. \endif
\if KO 로컬 계정의 현재 비밀번호를 검증하고 새 비밀번호로 변경합니다. \endif \if EN Verifies and changes the password of a local account. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifcurrentPassword— \if KO 현재 평문 비밀번호입니다. \endif \if EN The current plain-text password. \endifnewPassword— \if KO 새 평문 비밀번호입니다. \endif \if EN The new plain-text password. \endifcancellationToken— \if KO 변경 취소 토큰입니다. \endif \if EN A token used to cancel the change. \endif반환: \if KO 갱신된 사용자 또는 없으면 입니다. \endif \if EN The updated user, or when absent. \endif
\if KO 이메일과 비밀번호를 사용하는 로컬 계정을 만듭니다. \endif \if EN Creates a local account backed by an email address and password. \endif
email— \if KO 정규화할 이메일 주소입니다. \endif \if EN The email address to normalize. \endifdisplayName— \if KO 선택한 표시 이름입니다. \endif \if EN The chosen display name. \endifpassword— \if KO 해시할 평문 비밀번호입니다. \endif \if EN The plain-text password to hash. \endifcancellationToken— \if KO 생성 취소 토큰입니다. \endif \if EN A token used to cancel creation. \endif반환: \if KO 생성된 로컬 사용자입니다. \endif \if EN The created local user. \endif
\if KO 내부 식별자로 사용자를 조회합니다. \endif \if EN Finds a user by internal identifier. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifcancellationToken— \if KO 조회 취소 토큰입니다. \endif \if EN A token used to cancel the lookup. \endif반환: \if KO 찾은 사용자 또는 없으면 입니다. \endif \if EN The matching user, or when absent. \endif
\if KO 사용자의 표시 이름을 갱신합니다. \endif \if EN Updates a user's display name. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifdisplayName— \if KO 저장할 표시 이름입니다. \endif \if EN The display name to store. \endifcancellationToken— \if KO 갱신 취소 토큰입니다. \endif \if EN A token used to cancel the update. \endif반환: \if KO 갱신된 사용자 또는 사용자가 없으면 입니다. \endif \if EN The updated user, or when the user is absent. \endif
\if KO 공급자가 제공한 정보로 사용자를 추가하거나 갱신하고 최신 레코드를 반환합니다. \endif \if EN Inserts or updates a user from provider data and returns the current record. \endif
provider— \if KO 로그인 공급자 이름입니다. \endif \if EN The login-provider name. \endifproviderKey— \if KO 공급자 사용자 식별자입니다. \endif \if EN The provider user identifier. \endifemail— \if KO 공급자가 제공한 이메일입니다. \endif \if EN The email supplied by the provider. \endifdisplayName— \if KO 공급자가 제공한 표시 이름입니다. \endif \if EN The display name supplied by the provider. \endifavatarUrl— \if KO 공급자가 제공한 프로필 이미지 URL입니다. \endif \if EN The profile-image URL supplied by the provider. \endifcancellationToken— \if KO 저장 작업 취소 토큰입니다. \endif \if EN A token used to cancel persistence. \endif반환: \if KO 추가되거나 갱신된 사용자입니다. \endif \if EN The inserted or updated user. \endif
\if KO 이메일과 비밀번호로 로컬 계정을 검증합니다. \endif \if EN Validates a local account using an email address and password. \endif
email— \if KO 정규화할 이메일 주소입니다. \endif \if EN The email address to normalize. \endifpassword— \if KO 검증할 평문 비밀번호입니다. \endif \if EN The plain-text password to verify. \endifcancellationToken— \if KO 검증 취소 토큰입니다. \endif \if EN A token used to cancel validation. \endif반환: \if KO 인증된 사용자 또는 실패하면 입니다. \endif \if EN The authenticated user, or when validation fails. \endif
OAuthProviderOptions
\if KO 공급자가 발급한 클라이언트 ID를 가져오거나 설정합니다. \endif \if EN Gets or sets the client ID issued by the provider. \endif
\if KO 공급자가 발급한 클라이언트 비밀을 가져오거나 설정합니다. \endif \if EN Gets or sets the client secret issued by the provider. \endif
\if KO 클라이언트 ID와 비밀이 모두 구성되었는지 여부를 가져옵니다. \endif \if EN Gets whether both the client ID and client secret are configured. \endif
PasswordHashVerificationResult
\if KO 비밀번호가 일치하지 않습니다. \endif \if EN The password does not match. \endif
\if KO 비밀번호가 일치하며 현재 형식입니다. \endif \if EN The password matches and uses the current format. \endif
\if KO 비밀번호는 일치하지만 새 형식으로 다시 해시해야 합니다. \endif \if EN The password matches but should be rehashed in the current format. \endif
RequiredConsentPolicy
\if KO 이용약관, 개인정보처리방침 및 연령 확인 시각이 모두 기록되었는지 확인합니다. \endif \if EN Determines whether terms, privacy, and age-confirmation timestamps are all recorded. \endif
user— \if KO 검사할 사용자이며 없을 수 있습니다. \endif \if EN The user to inspect, which may be absent. \endif반환: \if KO 모든 필수 동의가 있으면 , 그렇지 않으면 입니다. \endif \if EN when every required consent is present; otherwise, . \endif
SqliteUserStore
\if KO 데이터베이스 공급자로 저장소를 초기화하고 사용자 테이블과 필수 열을 보장합니다. \endif \if EN Initializes the store with a database provider and ensures the user table and required columns. \endif
database— \if KO 사용자 데이터를 저장할 데이터베이스 공급자입니다. \endif \if EN The database provider used to store user data. \endif\if KO 사용자의 세 필수 동의 시각을 동일한 UTC 값으로 기록합니다. \endif \if EN Records the same UTC value for all three required user consents. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifacceptedAtUtc— \if KO 동의를 수락한 UTC 시각입니다. \endif \if EN The UTC acceptance time. \endifcancellationToken— \if KO 갱신 취소 토큰입니다. \endif \if EN A token used to cancel the update. \endif반환: \if KO 갱신된 사용자 또는 없으면 입니다. \endif \if EN The updated user, or when absent. \endif
\if KO 열 집합에 없으면 nullable 날짜 텍스트 열을 Users 테이블에 추가합니다. \endif \if EN Adds a nullable date-text column to Users when it is absent from the column set. \endif
columns— \if KO 현재 열 이름 집합입니다. \endif \if EN The current set of column names. \endifcolumnName— \if KO 확인하고 추가할 열 이름입니다. \endif \if EN The column name to check and add. \endif\if KO 로컬 사용자의 현재 비밀번호를 검증하고 강도가 확인된 새 해시를 저장합니다. \endif \if EN Verifies a local user's current password and stores a strength-checked new hash. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifcurrentPassword— \if KO 현재 평문 비밀번호입니다. \endif \if EN The current plain-text password. \endifnewPassword— \if KO 새 평문 비밀번호입니다. \endif \if EN The new plain-text password. \endifcancellationToken— \if KO 변경 취소 토큰입니다. \endif \if EN A token used to cancel the change. \endif반환: \if KO 갱신된 사용자 또는 없으면 입니다. \endif \if EN The updated user, or when absent. \endif
\if KO 이메일을 정규화하고 중복 및 비밀번호 길이를 검증한 뒤 로컬 계정을 만듭니다. \endif \if EN Normalizes the email, validates uniqueness and password length, then creates a local account. \endif
email— \if KO 로컬 계정 이메일입니다. \endif \if EN The local-account email. \endifdisplayName— \if KO 선택적 표시 이름이며 비어 있으면 이메일을 사용합니다. \endif \if EN The optional display name; the email is used when empty. \endifpassword— \if KO 해시할 평문 비밀번호입니다. \endif \if EN The plain-text password to hash. \endifcancellationToken— \if KO 생성 취소 토큰입니다. \endif \if EN A token used to cancel creation. \endif반환: \if KO 데이터베이스에서 다시 읽은 생성 사용자입니다. \endif \if EN The created user read back from the database. \endif
\if KO 기존 Users 테이블에 비밀번호 및 필수 동의 열이 존재하도록 마이그레이션합니다. \endif \if EN Migrates an existing Users table to ensure password and required-consent columns exist. \endif
\if KO 정규화된 이메일을 로컬 공급자 키로 사용해 사용자를 조회합니다. \endif \if EN Finds a local user using the normalized email as the provider key. \endif
email— \if KO 정규화된 이메일입니다. \endif \if EN The normalized email. \endifcancellationToken— \if KO 조회 취소 토큰입니다. \endif \if EN A token used to cancel the lookup. \endif반환: \if KO 찾은 로컬 사용자 또는 없으면 입니다. \endif \if EN The matching local user, or when absent. \endif
\if KO 내부 식별자로 사용자를 비동기 조회합니다. \endif \if EN Asynchronously finds a user by internal identifier. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifcancellationToken— \if KO 조회 취소 토큰입니다. \endif \if EN A token used to cancel the lookup. \endif반환: \if KO 찾은 사용자 또는 없으면 입니다. \endif \if EN The matching user, or when absent. \endif
\if KO 이메일 양끝 공백을 제거하고 소문자 불변 문화권 형식으로 정규화합니다. \endif \if EN Normalizes an email by trimming it and converting it to invariant lowercase. \endif
email— \if KO 정규화할 이메일입니다. \endif \if EN The email to normalize. \endif반환: \if KO 정규화된 이메일입니다. \endif \if EN The normalized email. \endif
\if KO 사용자의 공백 제거된 표시 이름을 갱신합니다. \endif \if EN Updates a user's trimmed display name. \endif
id— \if KO 내부 사용자 식별자입니다. \endif \if EN The internal user identifier. \endifdisplayName— \if KO 저장할 표시 이름입니다. \endif \if EN The display name to store. \endifcancellationToken— \if KO 갱신 취소 토큰입니다. \endif \if EN A token used to cancel the update. \endif반환: \if KO 갱신된 사용자 또는 없으면 입니다. \endif \if EN The updated user, or when absent. \endif
\if KO 외부 공급자 키로 사용자를 추가하거나 프로필과 마지막 로그인 시각을 갱신합니다. \endif \if EN Inserts a user by external provider key or updates the profile and last-login time. \endif
provider— \if KO 로그인 공급자 이름입니다. \endif \if EN The login-provider name. \endifproviderKey— \if KO 공급자 사용자 키입니다. \endif \if EN The provider user key. \endifemail— \if KO 사용자 이메일입니다. \endif \if EN The user's email. \endifdisplayName— \if KO 사용자 표시 이름입니다. \endif \if EN The user's display name. \endifavatarUrl— \if KO 프로필 이미지 URL입니다. \endif \if EN The profile-image URL. \endifcancellationToken— \if KO 저장 취소 토큰입니다. \endif \if EN A token used to cancel persistence. \endif반환: \if KO 저장된 최신 사용자 레코드입니다. \endif \if EN The current persisted user record. \endif
\if KO 로컬 이메일과 비밀번호를 검증하고 마지막 로그인 및 필요한 해시 업그레이드를 저장합니다. \endif \if EN Validates a local email and password, persisting the last-login time and any required hash upgrade. \endif
email— \if KO 정규화할 이메일입니다. \endif \if EN The email to normalize. \endifpassword— \if KO 검증할 평문 비밀번호입니다. \endif \if EN The plain-text password to verify. \endifcancellationToken— \if KO 검증 취소 토큰입니다. \endif \if EN A token used to cancel validation. \endif반환: \if KO 인증된 사용자 또는 실패하면 입니다. \endif \if EN The authenticated user, or on failure. \endif
\if KO database 값을 보관합니다. \endif \if EN Stores the database value. \endif
\if KO Local Provider 값을 보관합니다. \endif \if EN Stores the local provider value. \endif
\if KO Select Sql 값을 보관합니다. \endif \if EN Stores the select sql value. \endif
TableColumn
\if KO 데이터베이스 열 이름을 가져오거나 설정합니다. \endif \if EN Gets or sets the database column name. \endif