컨텐츠로 건너뛰기

인증

인증 방법은 두 가지가 있습니다. 하나는 사용자 이름과 비밀번호를 사용하여 인증하는 방법입니다. 이 방법은 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 }
스코프 사용자{ sc: string, ns: string, db: string, [param: string]: unknown }
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); // e.g. 1722749786
console.log(jwt.expiresAt); // e.g. 1722753386
console.log(jwt.namespace); // undefined
console.log(jwt.database); // undefined
console.log(jwt.access); // undefined
console.log(jwt.user); // 'root'
console.log(jwt.raw); // 'eyJ0eXAiOiJKV1QiLCJhb ... '
console.log(JSON.stringify(jwt)); // '"[REDACTED]"'
await db.disconnect();

다음 예에서는 네임스페이스 사용자로 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); // undefined
console.log(jwt.access); // undefined
console.log(jwt.user); // 'ns_user'
await db.disconnect();

다음 예에서는 데이터베이스 사용자로 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); // undefined
console.log(jwt.user); // 'db_user'
await db.disconnect();

다음 예에서는 스코프 사용자로 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",
sc: "account",
// ...parmeters
});
console.log(jwt.namespace); // 'my_namespace'
console.log(jwt.database); // 'my_database'
console.log(jwt.scope); // 'account'
console.log(jwt.user); // e.g. 'user:⟨tai-kun⟩'
await db.disconnect();

.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",
sc: "account",
// ...parmeters
});
console.log(jwt.namespace); // 'my_namespace'
console.log(jwt.database); // 'my_database'
console.log(jwt.scope); // 'account'
console.log(jwt.user); // e.g. 'user:⟨tai-kun⟩'
await db.disconnect();

.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 객체를 반환합니다.