use*_*337 3 objective-c ios firebase swift firebase-realtime-database
我对 Firebase 服务还很陌生,但我已经完成了负责 Firebase 实时数据库交互的 iOS 应用程序的代码。
现在我想确保我的应用程序安全并使用 Firebase 规则保护它。存在一个问题,我正在使用自己的用户身份验证,因此我不使用 Firebase Auth。
所以问题是如何使用 Firebase 规则而不使用 Firebase 身份验证来保护我的数据库。
注意:据我所知,无法直接在 Firebase 中使用自定义身份验证系统。
假设:您有一个集成了 Firebase Admin SDK(可以/已经)的身份验证服务器。
您需要创建自定义令牌才能在数据库/存储中使用您的身份验证:
https://firebase.google.com/docs/auth/admin/create-custom-tokens
经过身份验证后,将在访问其他 Firebase 服务(例如 Firebase 实时数据库和云存储)时使用此身份。此外,JWT 的内容将在 Firebase 实时数据库安全规则中的 auth 对象和云存储安全规则中的 request.auth 对象中提供。
上面的链接省略了Java和Python
在服务器中:
// Step 1: Your client has sent the credentials.
// Step 2: Fetch the client's unique id, and create a custom token with the Admin SDK.
var uid = "some-uid";
admin.auth().createCustomToken(uid)
.then(function(customToken) {
// Send token back to client
})
.catch(function(error) {
console.log("Error creating custom token:", error);
});
Run Code Online (Sandbox Code Playgroud)
然后在iOS部分:
// Step 1: Login with your own authentication system.
// Step 2: Send your credentials to your server, and fetch the customToken.
// Step 3: Sign in with FIRAuth:
[[FIRAuth auth] signInWithCustomToken:customToken
completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
// ...
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2914 次 |
| 最近记录: |