我有以下用例:
firebaseApp.auth().signInWithCustomToken(custom token)
进行初始化。替代
现在替代方案是我可以使用id令牌,它可以在客户端本身使用currentUser.getIdToken()
创建,解码该令牌只需要几毫秒,但我无法使用该令牌初始化SDK。所以我必须使用管理员SDK但RTDB中的我的IP节点不能被普通用户访问,并且只能通过管理员SDK访问,所以如果我使用带有自定义声明和安全规则的控制访问的ADMIN SDK来为管理员SDK提供类似的访问权限然后授权用户将无法访问IP节点。
ID令牌问题
Id令牌可以在客户端刷新,因此一旦客户端拥有自定义令牌,它就可以生成它想要的任意数量的令牌,这是不可取的。除了验证IP每次都不是我想用自定义令牌做的操作我只使用它来生成自定义令牌然后用于刷新令牌但使用id令牌,这是不可能的,因为客户端可以生成它使用SDK。
基本上,我必须在客户端使用firebase SDK,这需要自定义令牌(用于额外的授权检查)进行初始化,同时我从类似应用程序调用clound函数,这样才能实现最佳实现方式这个用例。