인증
인증 방법은 두 가지가 있습니다. 하나는 사용자 이름과 비밀번호를 사용하여 인증하는 방법입니다. 이 방법은 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. 1722749786console.log(jwt.expiresAt); // e.g. 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.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); // undefinedconsole.log(jwt.access); // undefinedconsole.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); // undefinedconsole.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
객체를 반환합니다.