[解決済み] Firebase web user.reauthenticateWithCredential() メソッドが必要とする "credential" オブジェクトをどのように作成しますか?
2023-02-19 08:39:41
質問
の(不明瞭な)例では 新しいドキュメント :
var user = firebase.auth().currentUser;
var credential;
// Prompt the user to re-provide their sign-in credentials
user.reauthenticateWithCredential(credential).then(function() {
どのように作成すればよいのでしょうか?
credential
オブジェクトはどのように作成すればよいのでしょうか?
試してみました。
-
reauthenticateWithCredential(email, password)
(ログイン方法と同様) -
reauthenticateWithCredential({ email, password })
(ドキュメントでは引数は1つだけです)
運が悪いな :(
追記: 新しいドキュメントで関連情報を探すのに何時間も無駄にしたことは数え切れません...。素晴らしい firebase.com のドキュメントがとても恋しいのですが、firebase.storage の v3 以降に切り替えたいと思っていました。
どのように解決しましたか?
ドキュメントを更新して、これを含める必要があります。
Firebase 8.x
このようにクレデンシャルオブジェクトが作成されます。
const user = firebase.auth().currentUser;
const credential = firebase.auth.EmailAuthProvider.credential(
user.email,
userProvidedPassword
);
// Now you can use that to reauthenticate
user.reauthenticateWithCredential(credential);
Firebase 9.x
(@Dako Junior さんの回答に感謝し、網羅性を高めるためにここに追加します)
import {
EmailAuthProvider,
getAuth,
reauthenticateWithCredential,
} from 'firebase/auth'
const auth = getAuth()
const credential = EmailAuthProvider.credential(
auth.currentUser.email,
userProvidedPassword
)
const result = await reauthenticateWithCredential(
auth.currentUser,
credential
)
// User successfully reauthenticated. New ID tokens should be valid.
注意事項
について質問されたことがあります。
userProvidedPassword
について、それが最初のログインから保存された変数のようなものであるかどうか、質問しました。そうではなく、パスワード入力のある新しいダイアログ/ページを開き、ユーザがパスワードを入力します。
もう一度
.
私は、あなたが はいけません。 は、ユーザーパスワードを平文で保存することで回避しようとします。これは 通常の の機能です。例えばGMailの場合、セッションが切れたり、ハッキングの疑いがあったり、場所を変えたりすることがあります。このとき、GMailは再びパスワードを要求します。これが再認証です。
頻繁に起こることではありませんが、Firebaseを使用するアプリはこれをサポートしないと、ユーザーはどこかで立ち往生することになります。
関連
-
[解決済み] GUID / UUIDの作成方法
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトを表示するにはどうすればよいですか?
-
[解決済み] 1...N を含む配列の作成方法
-
[解決済み] JavaScriptのオブジェクトにキーと値のペアを追加するにはどうすればよいですか?
-
[解決済み] JavaScript でオブジェクトが特定のプロパティを持つかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] jqueryはjavascriptのライブラリなのかフレームワークなのか?[クローズド]
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] 文字列がすべて同じ部分文字列で構成されているかどうかを調べるにはどうすればよいですか?
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] moment.jsでミュータビリティを回避するには?
-
[解決済み] BlobからArrayBufferへ移行する方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?