コンテンツにスキップ

検索はプロダクションビルドでのみ利用可能です。 ローカルでテストするには、サイトをビルドしてプレビューしてください。

Proof RPC メソッド

ProofWorker は認証・セッション・組織管理を担当するサービスです。better-auth をベースに、WorkerEntrypoint<Env> を継承して20の RPC メソッドを公開します。


Cookie からセッション情報を取得します。KV キャッシュを優先し、キャッシュミス時は Vault DB から取得して KV に保存します。

async getSession(params: {
readonly cookie: string;
}): Promise<{
readonly session: Session | null;
readonly user: User | null;
}>

Authorization ヘッダー(Bearer トークン / API キー)からセッション情報を取得します。

async getSessionByBearer(params: {
readonly authorization: string;
}): Promise<{
readonly session: Session | null;
readonly user: User | null;
}>

ユーザー ID を指定してセッションを直接作成します。外部認証フローで使用されます。

async createSessionById(params: {
readonly userId: string;
readonly ipAddress?: string;
readonly userAgent?: string;
}): Promise<{
readonly token: string | null;
readonly user: User | null;
readonly session: Session | null;
}>

匿名ユーザーとしてサインインします。顧客向けの初回アクセスで使用されます。

async anonymousSignIn(): Promise<{
readonly token: string | null;
readonly user: User | null;
readonly session: Session | null;
}>

パスワードを設定/変更します。

async setPassword(params: {
readonly cookie: string;
readonly password: string;
}): Promise<{ readonly success: boolean }>

ユーザーが所属する組織の一覧を取得します。

async getOrganizations(params: {
readonly cookie: string;
}): Promise<{
readonly organizations: readonly Organization[];
}>

アクティブ組織を切り替えます。Set-Cookie ヘッダーを返却します。

async setActiveOrganization(params: {
readonly cookie: string;
readonly organizationId: string;
readonly organizationSlug?: string;
}): Promise<{
readonly data: Record<string, unknown>;
readonly setCookies: readonly string[];
}>

新しい組織を作成し、アクティブ組織に設定します。

async createOrganization(params: {
readonly cookie: string;
readonly name: string;
readonly slug: string;
}): Promise<{
readonly data: Record<string, unknown>;
readonly setCookies: readonly string[];
}>

組織にメンバーを追加します。

async addMember(params: {
readonly cookie: string;
readonly userId: string;
readonly organizationId: string;
readonly role: string;
}): Promise<Record<string, unknown>>

組織からメンバーを削除します。

async removeMember(params: {
readonly cookie: string;
readonly organizationId: string;
readonly memberId: string;
}): Promise<Record<string, unknown>>

組織のメンバー一覧を取得します。

async getOrganizationMembers(params: {
readonly cookie: string;
readonly organizationId: string;
}): Promise<readonly Record<string, unknown>[]>

ユーザー一覧を検索・フィルタリング・ソート付きで取得します。

async listUsers(params: {
readonly cookie: string;
readonly searchValue?: string;
readonly searchField?: string;
readonly searchOperator?: string;
readonly limit?: number;
readonly offset?: number;
readonly sortBy?: string;
readonly sortDirection?: string;
readonly filterField?: string;
readonly filterValue?: string;
readonly filterOperator?: string;
}): Promise<Record<string, unknown>>

新規ユーザーを作成します(管理者用)。

async createUser(params: {
readonly cookie: string;
readonly name: string;
readonly email: string;
readonly password: string;
readonly role: string;
}): Promise<Record<string, unknown>>

ユーザー情報を更新します(BAN 操作を含む)。

async updateUser(params: {
readonly cookie: string;
readonly userId: string;
readonly name?: string;
readonly email?: string;
readonly role?: string;
readonly banned?: boolean;
readonly banReason?: string;
}): Promise<Record<string, unknown>>

ユーザーのシステムロールを変更します。

async setRole(params: {
readonly cookie: string;
readonly userId: string;
readonly role: string;
}): Promise<Record<string, unknown>>

ユーザーを代理認証(なりすまし)します。Set-Cookie ヘッダーを返却します。

async impersonateUser(params: {
readonly cookie: string;
readonly userId: string;
}): Promise<{
readonly data: Record<string, unknown>;
readonly setCookies: readonly string[];
}>

ユーザーの表示名・画像を更新します。

async updateUserProfile(params: {
readonly userId: string;
readonly name?: string;
readonly image?: string;
}): Promise<{ readonly success: boolean }>

ユーザーの外部メールアドレスを追加します。

async addOuterMail(params: {
readonly userId: string;
readonly email: string;
readonly primary?: boolean;
}): Promise<{
readonly success: boolean;
readonly id: string;
}>

ユーザーの外部メールアドレス一覧を取得します。

async getOuterMails(params: {
readonly userId: string;
}): Promise<{
readonly mails: ReadonlyArray<{
readonly id: string;
readonly email: string;
readonly primary: boolean;
}>;
}>

ユーザーの外部メールアドレスを削除します。

async deleteOuterMail(params: {
readonly userId: string;
readonly mailId: string;
}): Promise<{ readonly success: boolean }>