在不使用身份验证但使用(密钥,签名)数据的情况下设置Firestore

时间:2020-07-28 07:54:35

标签: firebase firebase-authentication ethereum key-pair redux-firestore

我想将firestore-redux集成到我的Web应用程序中,而不是使用auth通过电子邮件进行身份验证和定义“用户”集合,而是想知道用户是否可以使用其私钥签名消息并将哈希存储为firebase的“ auth.uid”? 示例:而不是像这样使用auth config:

// react-redux-firebase config
const rrfConfig = {
  userProfile: 'users'
  UseFirestoreForProfile: true // Firestore for Profile instead of Realtime DB
}

,而不是像这样设置安全规则:

// security rules    
service cloud.firestore {
      match /databases/{database}/documents {
        // Allow only authenticated content owners access
        match /some_collection/{userId}/{documents=**} {
          allow read, write: if request.auth != null && request.auth.uid == userId
        }
      }
    }

我们可以有一个自定义配置,其中文档密钥是用户的公共密钥,并使用用户私钥的签名哈希在安全规则(用于读写)中进行验证吗?

// react-redux-firebase config
    const rrfConfig = {
      userProfile: <<some public key or ethereum address of user>>
      UseFirestoreForProfile: true // Firestore for Profile instead of Realtime DB
    }

// security rules    
    service cloud.firestore {
          match /databases/{database}/documents {
            // Allow only authenticated content owners access
            match /some_collection/{userPubKey}/{documents=**} {
              allow read, write: if request.data.signHash!= null && request.data.signHash == resource.data.signHash
            }
          }
        }

在将基于以太坊(区块链)帐户的身份验证用于Firebase存储而不是通常基于电子邮件的身份验证时,这一点很重要。

0 个答案:

没有答案