BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Firebaseがメジャーアップデートで多数の認証トークンを提供

Firebaseがメジャーアップデートで多数の認証トークンを提供

ブックマーク

原文(投稿日:2014/10/07)へのリンク

Firebaseコア開発チームは今週,セッションの自動永続化やSecurity Rule用のリッチな認証トークンなどを含む,ユーザ認証のメジャーアップデートを発表した。

Firebaseはリアルタイムデータベースである。データの格納と複数クライアント間の同期を行うためのAPIを開発者に提供する。

"Major Updates to Firebase User Authentication"と題した記事の "Firebase Simple Login" という章の冒頭では,コア開発者のRob DiMarco氏が,認証の必要性は理解していたものの,"さまざまなOAuth実装の管理があまりにも大変である"という理由から実現されていなかった,と述べている。

Firebase Simple Loginの操作に関しては,GitHubのノートにその概要が記されている。

最初にFirebaseに接続した時点では,クライアントは匿名(anonymous)として,Security Ruleで指定されたデフォルトのアクセス権が付与されます。それ以外のアクセス権が必要な場合には認証する必要があります。

Firebaseの認証は,Simple Loginサービスを使用して管理されています。FacebookやGoogle,Twitter,GitHubなどのソーシャルログインプロバイダを使用した認証,およびEメールとパスワードログインを用いた管理が可能です。

発表の中でDiMarco氏は,Firebaseの認証APIについて,"完全に書き直された"と説明している。使い勝手がよくなっただけでなく,ログインフローがより詳細にコントロール可能になり,"サポートされるログイン方法やプラットフォームすべてに対して,一貫した開発者エクスペリエンス"の提供が期待される。

DiMarco氏によれば,

過去2年間,私たちはSimple Loginの改良を続けてきました。

モバイルプラットフォーム用のログインサポート,セッションの自動永続化,Security Rulesで使用する豊富な認証トークン,クライアント側コードのみを使用したユーザ認証用のシンプルなAPIなどを追加してきました。

本日のリリースで私たちは,これらがFirebase APIの重要な機能になったことを発表します。

アップデートで導入された他の新機能の中で注目すべきなのは,オフラインに最適化された認証だ。これによってFirebaseは,アプリケーションが非接続状態で起動した場合でも,ユーザ認証データへのフルアクセスを提供することができる。今回のアップデートによって,"接続状況を気にすることなく,アプリケーションを記述する"ことが可能になる。

同じように改良されたのが,認証状態のための新しいイベントリスナだ。Firebase value eventと同じように動作する一方で,webで使用されている認証トランスポートに特有の動作を行うことによって,認証フローやログイン中のユーザエクスペリエンスをより詳細にコントロールすることができる。

公表されているJavaScript Changelogによると,最新バージョンには他に次のような変更が含まれている。

  • すべての認証方式においてセッションの自動永続化が追加された
  • 認証状況に対する同期的なアクセサである ref.getAuth()が追加された
  • すべての認証プロバイダに返却する共通のauthDataが追加された
  • auth()の非推奨化。代わりにauthWithCustomToken()を使用することが求められる。

GitHub上のFirebase Simpile Loginの資料によると,Simple Loginの初期化のため,

FirebaseSimpileLoginオブジェクトを生成する必要がある。このオブジェクトはFirebaseへの参照とコールバック関数を包含する。ユーザの認証状態が変化した時,このコールバック関数が起動される。

var myRef = new Firebase("https://.firebaseio.com");
var authClient = new FirebaseSimpleLogin(myRef, function(error, user) {
if (error) {
// ログイン試行中にエラーが発生した
console.log(error);
} else if (user) {
// ユーザがFirebaseに認証された
console.log("User ID: " + user.uid + ", Provider: " + user.provider);
} else {
// ユーザがログアウトした
}
});

Firebase Simple LoginとFirebase APIに関する詳細は,こちらのGitHubプロジェクトを参照してほしい。

アップデートに関してFirebaseコミュニティは,冷静ではあるが好意的に受け止めている。

Hacker NewsでDiMarco氏は,"Major Updates to Firebase User Authentication"での議論に対して回答するとともに,フィードバックを歓迎するとコメントしている。氏に対して,ユーザのJohn Grosen氏が,Personaのサポートについて質問した。"Personaの公式サポートを止めたのはなぜですか? 使われていないから?"

共同創設者でCEOのJames Tamplin氏が,次のような回答を寄せている。

"Personaの後援企業であるMozillaが,採用率の低さを理由に機能開発の終了を決めたのです。そのことと,私たちの側でも利用数が非常に少ないことから,サポートの削除を決定しました。"

その他にGoogleのFirebaseグループでも,ユーザであるKyle Parisi氏が,"Major Updates to Firebase User Authentication"の解説に対するコメントとして,次のような質問をしている。

"とてもクールですね。唯一不足していると思うのは,サブドメインをサポートするシングルサインオンです。Eメールの適切な検証も必要かも知れませんね。予定はありますか?"

記事の公開時点では,質問に対する開発チームからの返答はない。

この記事に星をつける

おすすめ度
スタイル

BT