2

私は次のタスクをachiveするfirebase httpsのクラウ​​ド機能を呼び出し、クライアントからの認証オブジェクトを確認することが可能であるかどうかを把握しようとしています:httpsクラウド機能で認証を確認する方法は?

1)だけがそうでない場合は403を返し、検証済みのメールコールHTTPSエンドポイントとauthedユーザーを許可します。

2)何らかの形で、データベースにcharacters/:uidのようなノードを設定するために関数を呼び出したクライアントのuidにアクセスできます。

これは、重複する文字を許可しないためです。私は手動でuidをreq.bodyに渡すことができますが、これは誰でもこれを試して、req.bodyペイロードのようなuidのいずれかの種類を送信することによって100の異なる文字を作成できることを意味します。

このロジックをデータベースのトリガーに変更すると考えられます(クライアントはデータベースに書き込みます)。void/characters/uidノード(データベースのルールはこの全体的な検証を行います)は、データベース内のこの変更をリッスンしてデータを処理し、 characters/uid

しかし、これはそれが行われた後、ノードを削除するなどの追加のロジックが必要であることを意味する、プラス私たちはただres.send(200)またはエラーを返送することができます。https機能と同様に、クライアントに戻すエラーや成功応答を返送するかどうかはわかりません。

答えて

2

私がこれを理解すれば、これはfirebaseのルールで行うことができると思います。例では

https://firebase.google.com/docs/reference/security/database/#location

、などのルール提供:そこにデータを書き込むためのパス上に表示される

".write": "auth.uid === $user" 

は、同じUIDで認証されたユーザを可能にします。

403が返されるかどうかは不明です。これは、認証に使用するメカニズムに応じて、firebase認証を使用していることを意味します。covered in some depth hereです。

+1

エンドポイントに権限を追加する場合は、ルールを使用してください。https://github.com/firebase/functions-samples/tree/master/authorized- https-endpoint –

関連する問題