Proof RPC メソッド
ProofWorker は認証・セッション・組織管理を担当するサービスです。better-auth をベースに、WorkerEntrypoint<Env> を継承して20の RPC メソッドを公開します。
セッション管理
Section titled “セッション管理”getSession
Section titled “getSession”Cookie からセッション情報を取得します。KV キャッシュを優先し、キャッシュミス時は Vault DB から取得して KV に保存します。
async getSession(params: { readonly cookie: string;}): Promise<{ readonly session: Session | null; readonly user: User | null;}>getSessionByBearer
Section titled “getSessionByBearer”Authorization ヘッダー(Bearer トークン / API キー)からセッション情報を取得します。
async getSessionByBearer(params: { readonly authorization: string;}): Promise<{ readonly session: Session | null; readonly user: User | null;}>createSessionById
Section titled “createSessionById”ユーザー 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;}>anonymousSignIn
Section titled “anonymousSignIn”匿名ユーザーとしてサインインします。顧客向けの初回アクセスで使用されます。
async anonymousSignIn(): Promise<{ readonly token: string | null; readonly user: User | null; readonly session: Session | null;}>setPassword
Section titled “setPassword”パスワードを設定/変更します。
async setPassword(params: { readonly cookie: string; readonly password: string;}): Promise<{ readonly success: boolean }>getOrganizations
Section titled “getOrganizations”ユーザーが所属する組織の一覧を取得します。
async getOrganizations(params: { readonly cookie: string;}): Promise<{ readonly organizations: readonly Organization[];}>setActiveOrganization
Section titled “setActiveOrganization”アクティブ組織を切り替えます。Set-Cookie ヘッダーを返却します。
async setActiveOrganization(params: { readonly cookie: string; readonly organizationId: string; readonly organizationSlug?: string;}): Promise<{ readonly data: Record<string, unknown>; readonly setCookies: readonly string[];}>createOrganization
Section titled “createOrganization”新しい組織を作成し、アクティブ組織に設定します。
async createOrganization(params: { readonly cookie: string; readonly name: string; readonly slug: string;}): Promise<{ readonly data: Record<string, unknown>; readonly setCookies: readonly string[];}>addMember
Section titled “addMember”組織にメンバーを追加します。
async addMember(params: { readonly cookie: string; readonly userId: string; readonly organizationId: string; readonly role: string;}): Promise<Record<string, unknown>>removeMember
Section titled “removeMember”組織からメンバーを削除します。
async removeMember(params: { readonly cookie: string; readonly organizationId: string; readonly memberId: string;}): Promise<Record<string, unknown>>getOrganizationMembers
Section titled “getOrganizationMembers”組織のメンバー一覧を取得します。
async getOrganizationMembers(params: { readonly cookie: string; readonly organizationId: string;}): Promise<readonly Record<string, unknown>[]>ユーザー管理(Admin)
Section titled “ユーザー管理(Admin)”listUsers
Section titled “listUsers”ユーザー一覧を検索・フィルタリング・ソート付きで取得します。
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>>createUser
Section titled “createUser”新規ユーザーを作成します(管理者用)。
async createUser(params: { readonly cookie: string; readonly name: string; readonly email: string; readonly password: string; readonly role: string;}): Promise<Record<string, unknown>>updateUser
Section titled “updateUser”ユーザー情報を更新します(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>>setRole
Section titled “setRole”ユーザーのシステムロールを変更します。
async setRole(params: { readonly cookie: string; readonly userId: string; readonly role: string;}): Promise<Record<string, unknown>>impersonateUser
Section titled “impersonateUser”ユーザーを代理認証(なりすまし)します。Set-Cookie ヘッダーを返却します。
async impersonateUser(params: { readonly cookie: string; readonly userId: string;}): Promise<{ readonly data: Record<string, unknown>; readonly setCookies: readonly string[];}>ユーザープロフィール
Section titled “ユーザープロフィール”updateUserProfile
Section titled “updateUserProfile”ユーザーの表示名・画像を更新します。
async updateUserProfile(params: { readonly userId: string; readonly name?: string; readonly image?: string;}): Promise<{ readonly success: boolean }>addOuterMail
Section titled “addOuterMail”ユーザーの外部メールアドレスを追加します。
async addOuterMail(params: { readonly userId: string; readonly email: string; readonly primary?: boolean;}): Promise<{ readonly success: boolean; readonly id: string;}>getOuterMails
Section titled “getOuterMails”ユーザーの外部メールアドレス一覧を取得します。
async getOuterMails(params: { readonly userId: string;}): Promise<{ readonly mails: ReadonlyArray<{ readonly id: string; readonly email: string; readonly primary: boolean; }>;}>deleteOuterMail
Section titled “deleteOuterMail”ユーザーの外部メールアドレスを削除します。
async deleteOuterMail(params: { readonly userId: string; readonly mailId: string;}): Promise<{ readonly success: boolean }>