FeaturesCMS SDKアカウントの操作

アカウントの操作

CMS SDKでログインユーザーのアカウントの操作方法を説明します。以下の内容を解説します。

  • ログイン
  • ログアウト
  • セッション状態の確認
  • ユーザー情報の取得
  • ユーザー情報の更新
  • メールアドレスの変更
  • パスワードの変更
  • アカウントページURLの取得

ログイン

next-auth の signIn() 関数を使用してログインを実装します。

import { signIn } from "next-auth/react";
 
const handleSignIn = () => signIn();
 
<button onClick={handleSignIn}>ログイン</button>;

ログアウト

next-auth の signOut()logoutOrizm() を利用してログアウトを実装します。

import { signOut } from "next-auth/react";
import { logoutOrizm } from "@orizm/cms-sdk";
 
const handleSignOut = async () => {
  await signOut();
  logoutOrizm("your-project-name");
};
 
<button onClick={handleSignOut}>ログアウト</button>;

セッション状態の確認

next-auth の useSession() フックで現在のログイン状態を確認できます。

import { useSession } from "next-auth/react";
 
const { status } = useSession();
 
if (status === "loading") {
  return <p>Loading...</p>;
}
if (status === "unauthenticated") {
  return <p>Not logged in</p>;
}
return <p>Logged in</p>;

ユーザー情報の取得

userinfo.userinfo() で現在ログインしているユーザーの情報を取得できます。

const data = await client.userinfo.userinfo();

ユーザー情報の更新

userinfo.update() でユーザーの表示名を更新できます。

const data = await client.userinfo.update({
  name: "John Doe",
});

メールアドレスの変更

Orizmのアカウントページを通じてメールアドレスを変更することができます。
アカウントページへのリンクを設置する方法は アカウントページURLの取得 を参照してください。

アカウントページ経由ではなく、直接APIを使用してメールアドレスを変更することも可能です。
userinfo.changeEmail() を使用して、ユーザーのメールアドレスを変更します。

const data = await client.userinfo.changeEmail({
  email: "new-email@example.com",
});

パスワードの変更

Orizmのアカウントページを通じてパスワードを変更することができます。
アカウントページへのリンクを設置する方法は アカウントページURLの取得 を参照してください。

アカウントページ経由ではなく、直接APIを使用してパスワードを変更することも可能です。
userinfo.changePassword() を使用して、ユーザーのパスワードを変更します。

const data = await client.userinfo.changePassword({
  currentPassword: "current-password",
  newPassword: "new-password",
});

アカウントページURLの取得

getOrizmAccountPageURL() を使用して、ユーザーがアカウント情報を管理できるOrizmアカウントページへのURLを生成できます。
アカウントページではメールアドレスとパスワードの変更が可能です。

import { getOrizmAccountPageURL } from "@orizm/cms-sdk";
 
const accountPageURL = getOrizmAccountPageURL();
 
<a href={accountPageURL} target="_blank" rel="noopener noreferrer">
  アカウント設定
</a>;