1
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.

vue.js × firebaseによる再認証機能

Last updated at Posted at 2021-05-01

#前提
使用言語:vue.js、firebase
開発環境:vueCLI

#再認証機能とは
firebaseのAuthenticationに登録されている自分のユーザー情報を更新・変更するときにパスワードを入力して、以前に設定したパスワードと合致すればユーザー情報を更新・変更できるというもの。
ちなみにconsole.logによる開発ツールでパスワードを確認することはできない。

#コードは以下の通り
EmailAuthProvider.credentia()に自分で入力したメールアドレスとパスワードを引数として渡す。
EmailAuthProvider を使って認証情報を発行し、reauthenticateAndRetrieveDataWithCredentialで再認証。

main.vue
const user = firebase.auth().currentUser
const credential = firebase.auth.EmailAuthProvider.credential("email", "password")
user.reauthenticateWithCredential(credential)

#実装例
テキストフォームに入力したpasswordをv-modelでcredential()に渡すことで、再認証の処理が開始される。
ユーザー再認証→ パスワード合致OK→ メールアドレス変更処理 という流れで処理される。

data(){
  return {
    password: "
 }
},
methods: {
    onReAuth(){
       //ユーザー再認証
       const user = firebase.auth().currentUser
       const credential = firebase.auth.EmailAuthProvider.credential(user.email, this.password)
        user.reauthenticateWithCredential(credential)
         .then(()=> {
         console.log("再認証完了")
        })
        //メールアドレス更新
         .then(() =>{
            const user = firebase.auth().currentUser
            user.updateEmail(this.email).then(()=> {
                console.log("メールアドレス更新完了")
            })
         .catch((error)=> {
                console.log(error)
            })
         })
      }
    }
<v-text-field
    v-model="password">
</v-text-field>

参照リンク
https://tenderfeel.xsrv.jp/javascript/3606/

1
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
1
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?