LoginSignup
1
1

Hexabase TypeScript SDKを使ったデモ(認証)

Posted at

Hexabase(ヘキサベース)は企業においても安心して利用できるBaaS(Backend as a Service)を提供しています。多くのBaaSがそうであるように、主にフロントエンド開発者に利用してもらいたいと考えています。そこで現在、TypeScript SDKの開発が進められています。

この記事ではv2系になって新しくなったHexabase TypeScript SDKのインストールと、認証(メールアドレスとパスワード)の方法を紹介します。

デモ

以下はデモアプリです。ログインと、ログアウト処理を行っています。

image.png

インストール

インストールはnpmやyarnを使って行います。

# npmの場合
npm install @hexabase/hexabase-js

# yarnの場合
yarn add @hexabase/hexabase-js

インポート

インポートすると、 HexabaseClient というオブジェクトが取得できます。

import { HexabaseClient, User } from "@hexabase/hexabase-js";

初期化

HexabaseClientを初期化します。

// 本番閑居向け
const client = new HexabaseClient();

// 開発環境向け
const client = new HexabaseClient('dev');

なお、すでに認証済みだった場合に備えて、2番目の引数にトークンを指定できます。

const client = new HexabaseClient('dev', 'YOUR_TOKEN');

認証

Hexabaseでは業務利用を想定しているため、利用する際に認証情報が必須になります。最初はメールアドレスとパスワードで認証し、その後はトークンを使ってGraphQLにアクセスします。 client を使って処理します。

初回の認証は次のようになります。emailとパスワード、またはトークンが必須です。

const bol = await client.login({email, password, token});

レスポンスは認証成功すれば true 、失敗すれば false が返ってきます。

ログアウト

ログアウトは client.logout() にて行います。

ログインユーザーの情報

認証すると、 client.currentUser にてユーザー情報が取得できます。

const user = client.currentUser;

実装例

例としてReactを使った場合は以下のようになります。

// Input value
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
// Auth
const [status, setStatus] = useState(false);
const [auth, setAuth] = useState(false);
const [user, setUser] = useState<User>(null);

ログイン処理は以下のようになります。

// Login to Hexabase
const login = async (e) => {
	e.preventDefault();
	const bol = await client.login({ email, password });
	setUser(client.currentUser);
	setStatus(bol);
};

ログアウト処理です。

const logout = async (e) => {
	e.preventDefault();
	try {
		await client.logout();
	} catch (e) {
		console.log(e);
	}
    setUser(null);
    setStatus(false);
};

まとめ

SDKを使うことで、Hexabaseの認証は簡単に利用できます。ぜひWebアプリケーション開発に活用してください。

Hexabaseには他にもデータストアやファイルストレージ、スクリプトなどの機能があります。それらの機能も利用してください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1