인증
인증 방법은 두 가지가 있습니다. 하나는 사용자 이름과 비밀번호를 사용하는 방법입니다. DEFINE USER
문을 사용하여 정의된 사용자 이름과 비밀번호가 필요합니다. 다른 하나는 DEFINE ACCESS
문으로 정의된 사용자 지정 인증입니다. 여기서는 전자를 “사용자 인증”, 후자를 “접근 인증”이라고 부르겠습니다.
.signin()
인스턴스 메서드
SurrealDB에 사용자 인증 또는 접근 인증으로 로그인합니다.
signin(auth: Auth, options?: ClientRpcOptions): Promise<Jwt>;
인수
auth
사용자 인증 또는 접근 인증에 필요한 정보입니다. 각 인증 유형에 필요한 매개변수는 다음과 같습니다.
인증 유형 | 매개변수 |
---|---|
루트 사용자 | { user: string, pass: string } |
네임스페이스 사용자 | { user: string, pass: string, ns: string } |
데이터베이스 사용자 | { user: string, pass: string, ns: string, db: string } |
접근 | { ac: string, ns: string, db: string, [param: string]: unknown } |
일반적으로 접근 인증에는 정의된 접근 권한 (ac
)에 따라 추가 매개변수가 필요합니다.
options
PRC 요청 옵션입니다.
반환값
Jwt
로 해결되는 Promise
객체를 반환합니다.
예제
다음 예제는 루트 사용자로 SurrealDB에 로그인하는 방법을 보여줍니다.
import { Surreal } from "@tai-kun/surrealdb";
const db = new Surreal();await db.connect("ws://localhost:8000");
const jwt = await db.signin({ user: "root", pass: "passw0rd",});
console.log(jwt.issuedAt); // 예: 1722749786console.log(jwt.expiresAt); // 예: 1722753386console.log(jwt.namespace); // undefinedconsole.log(jwt.database); // undefinedconsole.log(jwt.access); // undefinedconsole.log(jwt.user); // 'root'
console.log(jwt.raw); // 'eyJ0eXAiOiJKV1QiLCJhb ... 'console.log(JSON.stringify(jwt)); // '"[REDACTED]"'
await db.close();
다음 예제는 네임스페이스 사용자로 SurrealDB에 로그인하는 방법을 보여줍니다.
import { Surreal } from "@tai-kun/surrealdb";
const db = new Surreal();await db.connect("ws://localhost:8000");
const jwt = await db.signin({ ns: "my_namespace", user: "ns_user", pass: "passw0rd",});
console.log(jwt.namespace); // 'my_namespace'console.log(jwt.database); // undefinedconsole.log(jwt.access); // undefinedconsole.log(jwt.user); // 'ns_user'
await db.close();
다음 예제는 데이터베이스 사용자로 SurrealDB에 로그인하는 방법을 보여줍니다.
import { Surreal } from "@tai-kun/surrealdb";
const db = new Surreal();await db.connect("ws://localhost:8000");
const jwt = await db.signin({ ns: "my_namespace", db: "my_database", user: "db_user", pass: "passw0rd",});
console.log(jwt.namespace); // 'my_namespace'console.log(jwt.database); // 'my_database'console.log(jwt.access); // undefinedconsole.log(jwt.user); // 'db_user'
await db.close();
다음 예제는 레코드 접근으로 SurrealDB에 로그인하는 방법을 보여줍니다. .user
에는 레코드 ID가 설정됩니다.
import { Surreal } from "@tai-kun/surrealdb";
const db = new Surreal();await db.connect("ws://localhost:8000");
const jwt = await db.signin({ ns: "my_namespace", db: "my_database", ac: "account", // ...parmeters});
console.log(jwt.namespace); // 'my_namespace'console.log(jwt.database); // 'my_database'console.log(jwt.access); // 'account'console.log(jwt.user); // 예: 'user:⟨tai-kun⟩'
await db.close();
.signup()
인스턴스 메서드
접근 인증으로 SurrealDB에 회원가입합니다.
signup(auth: RecordAccessAuth, options?: ClientRpcOptions): Promise<Jwt>;
인수
auth
접근 인증에 필요한 정보입니다.
options
PRC 요청 옵션입니다.
반환값
Jwt
로 해결되는 Promise
객체를 반환합니다.
예제
import { Surreal } from "@tai-kun/surrealdb";
const db = new Surreal();await db.connect("ws://localhost:8000");
const jwt = await db.signup({ ns: "my_namespace", db: "my_database", ac: "account", // ...parmeters});
console.log(jwt.namespace); // 'my_namespace'console.log(jwt.database); // 'my_database'console.log(jwt.access); // 'account'console.log(jwt.user); // 예: 'user:⟨tai-kun⟩'
await db.close();
.authenticate()
인스턴스 메서드
JWT를 사용하여 현재 연결을 인증합니다.
authenticate(token: string | Jwt, options?: ClientRpcOptions): Promise<void>
인수
token
인증할 JWT입니다.
options
RPC 요청 옵션입니다.
반환값
undefined
로 해결되는 Promise
객체를 반환합니다.
.invalidate()
인스턴스 메서드
현재 연결의 인증을 무효화합니다.
invalidate(options?: ClientRpcOptions): Promise<void>
인수
options
RPC 요청 옵션입니다.
반환값
undefined
로 해결되는 Promise
객체를 반환합니다.