2017-07-14 17 views
0

最初はちょうど昨日すべてがうまくいった。しかし、今朝から、私は事件を起こした。バックエンド(NodeJS)で 私は私がバックエンドからもらったトークンを使用して、クライアント側signInWithCustomToken()に呼び出すとき、私は次のエラーを取得、その後auth().createCustomToken(SOME_ID)firebase signInWithCustomTokenが壊れた

でカスタムトークンを生成:では

{ 
    code: "auth/invalid-custom-token", 
    message: "The custom token format is incorrect. Please check the documentation." 
} 

をparams {:真、トークン:returnSecureToken MY_GENERATED_TOKEN}とhttps://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyCustomToken?key=MY_API_KEYへのPOSTがありますログインすると、ステータス400と応答

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "invalid", 
    "message": "INVALID_CUSTOM_TOKEN" 
    } 
    ], 
    "code": 400, 
    "message": "INVALID_CUSTOM_TOKEN" 
} 
} 

では、だから、Googleはいくつかの重大な変更または何を導入したのですか?

+0

は、あなたが使用したものとしてクライアントで同じプロジェクトを使用している:これは

.claim("iat", timeSeconds) .claim("exp", expSeconds) 

検証の結果を値に

timeSeconds=TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()); expSeconds = timeSeconds + 60L * 60L; 

は、および特許請求の範囲を設定しますバックエンドにカスタムトークンを生成しますか? – bojeil

+0

@bojeilもちろん、そうです。 –

答えて

-1

私は同じ問題を抱えていました。トークンが期限切れになったためです。 Firebase SDKは、フォーマットされていないトークンと期限切れのトークンの両方で、同じエラー:auth/invalid-custom-tokenエラーをスローします。

jtwデコードなどのクライアントサイドライブラリを使用し、「exp」タイムスタンプをチェックして現在の時刻と比較することで、トークンが期限切れになっているかどうかを確認することができます。

"kind": "identitytoolkit#VerifyCustomTokenResponse", 
    "idToken": "", 
    "expiresIn": "3600", 
    "isNewUser": true 

stackoverflow.com/questions/45110441/firebase-auth-invalid-custom-token

+0

このリンクは質問に答えるかもしれませんが、ここでは答えの重要な部分を含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 17547201) –

+0

これは本当に質問に答えません。別の質問がある場合は、[質問する](https://stackoverflow.com/questions/ask)をクリックして質問することができます。十分な[評判](https://stackoverflow.com/help/)があれば、この問題にもっと注意を払うために[奨励金を追加](https://stackoverflow.com/help/privileges/set-bounties)することもできます何が評判か)。 - [レビューより](/レビュー/低品質の投稿/ 17547201) – Pop

関連する問題