Authenticationによるユーザー認証の動作確認

FirebaseのAuthenticationを利用すると簡単に認証処理を実装できます。ここでは、Node.jsで Firebase JavaScript SDK を利用して認証処理の動作確認を行います。

プロジェクトを作成

Firebaseのコンソール画面にアクセスします。
https://console.firebase.google.com/

709-firebase-authentication_1.png

プロジェクトを追加をクリックします。

709-firebase-authentication_2.png

プロジェクト名を入力します。

709-firebase-authentication_3.png

プロジェクトを作成をクリックします。

アプリを登録

709-firebase-authentication_app_1.png

今回はウェブアプリを追加します。

709-firebase-authentication_app_2.png

ここのConfig情報を実装時に利用するのでメモしておきます。

ログイン方法を設定

709-firebase-authentication_auth1.png

Authenticationを選択します。

709-firebase-authentication_auth2.png

まだユーザーはいません。

709-firebase-authentication_auth3.png

メール/パスワードによるログインを有効にします。

709-firebase-authentication_auth4.png

他にもGoogle Facebookなどのログイン方法が提供されています。

実装 & 動作確認

Node.jsで実装して動作確認します。

SDKをインストール

npm i --save firebase

ユーザー作成
 - initializeApp
 - createUserWithEmailAndPassword

signUp.js に以下処理を記述します。

(async () => {
  try {
    const firebase = require('firebase')
    const email = process.argv[2]
    const password = process.argv[3]

    const config = {
      apiKey: 'コンソール画面で確認',
      authDomain: 'コンソール画面で確認',
    }
    firebase.initializeApp(config)

    await firebase.auth().createUserWithEmailAndPassword(email, password)
    console.log('Success')
  } catch (err) {
    console.log(`Error: ${JSON.stringify(err)}`)
  }
})()

実行してみます。

$ node signUp.js test1@example.com xxxxxxx
Success
709-firebase-authentication_done.png

コンソール画面からユーザーが作成されたことを確認できます。

もう1度、同じメールアドレスで実行するとエラーになります。

$ node signUp.js test1@example.com xxxxxxx
Error: {"code":"auth/email-already-in-use","message":"The email address is already in use by another account."}

ログイン・更新・ログアウト
 - initializeApp
 - signInWithEmailAndPassword
 - currentUser
 - updateProfile
 - signOut

auth.js に以下処理を記述します。

(async () => {
  try {
    const firebase = require('firebase')
    const email = process.argv[2]
    const password = process.argv[3]

    const config = {
      apiKey: 'コンソール画面で確認',
      authDomain: 'コンソール画面で確認',
    }
    firebase.initializeApp(config)

    let user
    console.log('### currentUser')
    user = firebase.auth().currentUser
    console.log(user)
    console.log()

    console.log('### signInWithEmailAndPassword')
    await firebase.auth().signInWithEmailAndPassword(email, password)
    console.log()

    console.log('### currentUser')
    user = firebase.auth().currentUser
    console.log(`displayName: ${user.displayName}`)
    console.log(`emal: ${user.email}`)
    console.log(`emailVerified: ${user.emailVerified}`)
    console.log(`uid: ${user.uid}`)
    console.log()

    console.log('### updateProfile')
    await user.updateProfile({ displayName: 'wakuwaku' })
    console.log()

    console.log('### currentUser')
    user = firebase.auth().currentUser
    console.log(`displayName: ${user.displayName}`)
    console.log()

    console.log('### signOut')
    await firebase.auth().signOut()
    console.log()

    console.log('### currentUser')
    user = firebase.auth().currentUser
    console.log(user)
  } catch (err) {
    console.log(`Error: ${JSON.stringify(err)}`)
  }
})()

作成済みユーザーのメールアドレスで動作確認します。

$ node auth.js test1@example.com xxxxxxx
### currentUser
null

### signInWithEmailAndPassword

### currentUser
displayName: null
emal: test1@example.com
emailVerified: false
uid: De7sc7tks4aGd2syg8vhIOW6jzi2

### updateProfile

### currentUser
displayName: wakuwaku

### signOut

### currentUser
null

まだ作成していないユーザーのメールアドレスで動作確認します。

$ node auth.js test2@example.com xxxxxxx
### currentUser
null

### signInWithEmailAndPassword
Error: {"code":"auth/user-not-found","message":"There is no user record corresponding to this identifier. The user may have been deleted."}

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。