1

Android アプリ用に ID ツールキットをほぼ完全にセットアップしました。ユーザー名とパスワードで認証するときに、リンク「サインインの問題」のエンドポイントをセットアップするのに助けが必要です。

ここに列挙されている手順に従うことを試みました (役に立たなかった) 。

いくつかの奇妙なことに気付きました:
1) バックエンドのエンドポイントに送信されたリクエストは、私が期待していた POST とは対照的に、実際には GET リクエストです (前述のドキュメントによると)。
2)呼び出した後、リクエストがサーバーに到達したとき

OobResponse oobResponse = getGitkitClient().getOobResponse(request);

一連の oobResponse プロパティを応答に入れました (Spring Boot を使用するため、json 化された Map を返すだけです)。ここに私が得る値があります:

{"newEmail": null,"oobResponse":"{\"error\": \"unknown request\"}","email": null,"action": null,"recipient": null}

「サインインの問題」リンクをクリックすると、この json オブジェクトがデバイスに表示されます。

関連する場合は、私の構成の一部を次に示します。

Android マニフェスト ファイルには、次の行が含まれています。

...
<meta-data
    android:name="identitytoolkit.show_providers"
    android:value="Facebook,Google" />
<meta-data
    android:name="identitytoolkit.use_google_plus"
    android:value="false" />
<meta-data
    android:name="identitytoolkit.api_key"
    android:value="myKey" />
<meta-data
    android:name="identitytoolkit.server_client_id"
    android:value="myClientId" />
<meta-data
    android:name="identitytoolkit.server_widget_url"
    android:value="https://example.com/callback" />`
...

Identity Toolkit API の Google 開発者コンソールで、URL 構成がどのように設定されているかを次に示します。

Widget URL: https://example.com/callback  
Sign-in Success URL: https://example.com/signInSuccess  
Sign-out URL: https://example.com/signOut  
Send email URL: https://example.com/sendEmail  

私の Web クライアント URL は次のとおりです。

Authorized JavaScript origins: http://example.com  
Authorized Redirect URIs: https://example.com/callback  

あなたが知っている良いチュートリアルへのアイデア、ヒント、またはリンクはありますか? これは、リリースする前に完了する必要がある最後の数少ない作業の 1 つです。助けてください!

更新:
この問題をもう少しいじってみたところ、Spring Boot を使用していることが問題の原因であると思われます。Google が期待するリクエストは javax.servlet.http.HttpServletRequest であると言っていますが、Spring Boot は org.springframework.web.context.request.WebRequest を使用します。javax.servlet.http.HttpServletRequest .jar を見つけて含め、/callback パスに対応するメソッドの署名でそのタイプの要求を受け入れるようになりました。また、署名のリクエストのタイプを WebRequest に設定し、呼び出すときに HttpServletRequest タイプにキャストしようとしました。

OobResponse oobResponse = getGitkitClient().getOobResponse((HttpServletRequest) request);  

これはまだ機能していません。:(

4

1 に答える 1