0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ember.jsで、FirebaseのAuth機能を使います。

ソースコード

流れ

セットアップ

# Ember.jsの新規プロジェクト生成
ember new ...
cd ...

# 必要なライブラリをインストール
ember install emberfire@next
ember install ember-simple-auth

# firebaseのセッションストアを作成
ember generate firebase-session-store application

Firebaseプロジェクトの作成

コンソール( https://console.firebase.google.com/ )から新規プロジェクトを作成します。そして、ウェブアプリを追加し、その認証情報を https://github.com/firebase/emberfire/blob/master/docs/guide/installation.md#2-configure-firebase を参考に設定します。また、FirebaseコンソールのAuthenticationからGoogleアカウントによる認証を有効化します。

テンプレートの修正

ログイン出来るかどうかだけみたいので、下記のようなシンプルなテンプレートにします。

{{#if session.isAuthenticated}}
  {{ session.data.authenticated.user.displayName }} さん
  <button {{action "logout"}}>Sign out</button>
  {{outlet}}
{{else}}
  <button {{action "login"}}>Google経由でログインしてください</button>
{{/if}}

コントローラーの作成

emberfireの公式例を見るとRouteでやっているのですが、同じようにやると上手く出来ませんでした。代わりにコントローラーを作成します。

import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
import firebase from 'firebase/app';
import { action } from '@ember/object';

export default class ApplicationController extends Controller {
  @service
  session;

  @service
  firebaseApp;

  @action
  logout() {
    return this.session.invalidate();
  }

  @action
  async login() {
    const auth = await this.firebaseApp.auth();
    const provider = new firebase.auth.GoogleAuthProvider();
    const result = await auth.signInWithPopup(provider);
    return result;
  }
}

実行

npm run start

で開始し、localhost:4200を開きます。

スクリーンショット 2020-10-07 18.58.02.png

ボタンが出るので押すと、Googleのログイン画面がポップアップウィンドウで出てきます。そこで許可すると、下記のようにログインすることが出来ます。

スクリーンショット 2020-10-07 18.59.02.png

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?