Hexabase(ヘキサベース)は企業向けのBaaS(Backend as a Service)を提供しています。認証やデータストア、ファイルストレージ、リアルタイム通知などの機能があり、企業向けのシステム開発に必要な機能をまるっと提供しています。
APIはREST APIとGraphQLを提供しています。そのAPIをラップしたSDKも開発を進めています。SDKは現在、TypeScriptとDart向けに開発しています。Dart向けのSDKは、もちろんFlutterでも利用できます。
この記事ではDart/Flutter SDKについて、認証の永続化に対応したので利用法を紹介します。
パッケージとソースコード
パッケージはpub.devで公開しています。
ソースコードはGitHubにて公開しています。ライセンスはMIT Licenseです。
hexabase/hexabase-dart: Hexabase SDK for Dart & Flutter
インストール
インストールは dart pub get
で行えます。
dart pub get hexabase
インポート
SDKをインポートします。
import 'package:hexabase/hexabase.dart';
初期化
まずインスタンスを作成します。
var client = Hexabase();
別なファイルで再度インポートした場合には、以下でインスタンスを取得してください。
var client = Hexabase.instance;
認証
Hexabase Dart/Flutter SDKでは以下の2パターンによる認証を提供しています。
メールアドレスとパスワードによる認証
var client = Hexabase();
client.persistence = Hexabase.persistenceLocal;
await client.login('you@example.com', 'password');
Auth0を使った認証
// Auth0のトークンを用意します
await client.loginAuth0('AUTH0_TOKEN');
認証の永続化
認証をlocalStorageやNSUserDefaults、SharedPreferencesに保存する場合には、認証前に以下を実行してください。
// 永続化
client.persistence = Hexabase.persistenceLocal;
// 認証
await client.login(keys['email'], keys['password']);
認証状態の確認
認証状態を確認する場合は、 isLogin
メソッドを実行します。この時にはセッションの有効性チェックも行うので、有効期限が切れていればfalseが返ってきます。トークンが無効な場合は、ローカルのセッションデータも削除されます。
if (await client.isLogin()) {
// ログイン有効
var user = client.getCurrentUser();
} else {
// ログインしていない or トークンが無効
}
ログアウト
ログアウトはログアウトAPIの実行、そしてローカルストレージの削除などを行います。
var user = client.getCurrentUser();
await user.logout();
デモ
単純な認証デモを、以下のURLで試せます。認証はローカルストレージに残りますので、消す場合にはログアウトを行ってください。
ドキュメント
詳しい使い方はドキュメントをご覧ください。
まとめ
Hexabase Dart SDKを使うことで認証処理はもちろん、認証状態の永続化も簡単に実現できます。ぜひお試しください。
Dart SDKはFlutterでも利用できます。Flutterで使えると言うことは、iOS/Androidといったスマートフォンアプリやタブレットアプリはもちろん、Webやデスクトップアプリ開発でも利用できます。ぜひHexabaseをDart SDKとともに活用してください。