PayPalのサインインをAndroidアプリケーションに統合して、クライアントをFirebaseデータベースに認証したいと考えています。私は、クライアントアプリケーションで "signin withcustomtoken"関数を使用するために、提供されたuidからトークンを作成するnode.jsサーバーでカスタム機能を作成しました。トークンを取得するために、https経由でnodeidサーバーにuidを送信する必要がありますか?より良い方法がありますか?Firebase認証用の新しいフェデレーションIDプロバイダを作成する方法
0
A
答えて
0
uid
を受け入れ、カスタムトークンを返すHTTPエンドポイントを作成しないでください。これは、巨大なセキュリティ上の脆弱性であり、攻撃者はどんなユーザーでも自分のuid
を偽装する可能性があるためです。 あなたがする必要があるのは以下の通りです:
- paypal OAuth code flowを実装します。そのためにサードパーティのライブラリを使用することができます。
- Paypal OAuth認証コードを取得したら、バックエンドに送信し、PaypalクライアントIDと秘密情報を使用してPaypal更新トークンとアクセストークンを交換します。そのペイパルユーザーを含むペイパルユーザーに関連付けられたユーザー情報を取得することができます。その後、Firebase Admin SDKを使用してFirebaseカスタムトークンを作成し、それをクライアントに返します。
- クライアントで
signInWithCustomToken
を使用すると、そのカスタムトークンでサインインを完了できます。
この場合、認証コードを取得してFirebaseカスタムトークンを返すHTTPエンドポイントを公開しています。
これは基本的な考え方です(詳細は除外されています)。もちろん、同じデバイス上で何らかの状態を渡すことで、フローの開始と終了を確認してから、最後に戻っているかどうかを確認する必要があります。また、アプリリンクなどのようなものを使用して認証コードが正しいアプリに返されるようにする必要があります.Firebase Dynamic Linksが役立ちます。
関連する問題
- 1. Firebase認証 - プロバイダのID
- 2. JWTフェデレーションIDを使用したREST認証/承認
- 3. Swiftの新しいFirebase 3.2.1でプロバイダ(Facebook、Google)を指定するFirebaseアプリケーションにユーザを認証する方法
- 4. 複数の認証プロバイダをFirebaseアカウントにリンクする方法
- 5. カスタム認証プロバイダをFirebaseにリンクする
- 6. CognitoフェデレーションIDで未使用のIDを作成しないようにする方法
- 7. firebase google認証プロバイダで作成されたUIDの数を取得します
- 8. フェデレーション認証cookieless STS
- 9. Xamarin.Forms Google API IDプロバイダを使用してユーザーを認証する
- 10. awsフェデレーション認証で認証されたユーザーのメールを取得する方法
- 11. Firebase認証ユーザーの作成
- 12. 電話番号で動作するAndroid用Firebase認証の作成方法は?
- 13. ログイン時のFirebaseユーザのマージ認証プロバイダ
- 14. wso2 IDサーバー5.3でカスタム認証を作成する方法
- 15. デフォルトの認証タイプにすることなく、MVCアプリケーションでフェデレーション認証を使用する方法
- 16. 新しいFirebaseユーザーを作成する - 正しい方法
- 17. 他のfirebaseプロジェクトでfirebase認証を使用する方法
- 18. フェデレーション認証とセッション管理
- 19. 作成した日付でFirebaseコンソールの認証ページをソートする方法は?
- 20. Firebase認証要求の作成方法は?
- 21. Spring Security 3.x:UserDetailsServiceを使用しないカスタム認証プロバイダの作成
- 22. MediaWiki:ネイティブ認証ではない新しいユーザを作成する方法PHP
- 23. Swift Firebase認証エラーID
- 24. カスタムサポートされていないプロバイダによるFirebase認証
- 25. laravel5認証を作成する方法
- 26. 複数の認証プロバイダをログイン時にFirebaseにリンクする
- 27. Firebaseで新しいDatabaseErrorインスタンスを作成する方法は?
- 28. 新しいfirebaseの挿入のIDを設定する方法
- 29. 電子メールと一致しない複数の認証プロバイダをリンクするFirebase
- 30. ログインしたユーザのFirebase認証プロバイダを検出
セキュリティに関する私の心配だったInfact。 firebaseは私が外部のサーバと直接通信することを許可しないので、私はまずGoogle認証を使うことに決めました。ユーザーに確認済みのPayPalアカウントがあるかどうかを確認するフラグをデータベースに追加し、クライアントアプリケーションでPaypal oauthを完全に実装するように更新します。私はnode64関数を使用して、client64のclientid:secretを返して、クライアント上のppaouthのフローで動作させることができると思います。あなたは良いアイデアだと思いますか?ありがとう – Nullo
いいえもちろんです。クライアントIDまたはシークレットをクライアントに返さないでください。認証コードフローは、バックエンドサーバー上で完了するためのものです。 – bojeil
私はアプリ内のAPIの秘密を難読化し、それがどうなるかを見てみようと思います。私が支払った計画に切り替えたり、自分のサーバーをこの段階でセットアップする必要はありません。 – Nullo