Firebase - 使用firebase admin sdk

时间:2017-05-17 10:33:12

标签: firebase firebase-authentication firebase-admin

我做过一些关于在我的应用的子域之间共享auth object的研究。显然firebase的web sdk这个设置。

我的想法是拥有一个登录网站login.myapp.com,我的其他应用app1.myapp.comapp2.myapp.com可以使用该网站进行身份验证。就像谷歌一样。

我的第一次尝试是stringify()来自localStorage的auth对象,然后将其作为url param发送到请求的应用,以便我可以parse() auth对象并将其存储到该应用的localStorage

但我不喜欢这种设置,不仅令牌会记录在浏览器的历史记录中,它看起来也很奇怪。

所以我想知道是否有使用admin sdk的已知设置。

  1. login.myapp.com
  2. 获取身份验证
  3. uid传递给app1.myapp.com
  4. app1.myapp.com通过http
  5. uid传递给服务器
  6. 服务器将检查uid是否已通过身份验证。
  7. 如果成功,服务器将回复auth objectapp1.myapp.com
  8. firebase管理员可以生成这样的东西吗?

    enter image description here

1 个答案:

答案 0 :(得分:5)

这听起来像是您需要的自定义令牌铸造。您login.myapp.com@IBAction func seePostingButtonClicked(_ sender: Any) { postRef.queryOrdered(byChild: "uid").queryEqual(toValue: otherUID).observe(.childAdded, with:{ snapshot in print("snapshot.value is \(snapshot.value!)") if let postDict = snapshot.value as? Dictionary<String, AnyObject> { let key = snapshot.key let post = Post(postKey: key, postData: postDict) print("post is \(post)") let dateFormatter = DateFormatter() dateFormatter.dateFormat = "EEE, MMM d, yyyy, h:mma" let stringOfDate = post.dateForFilters! let date = dateFormatter.date(from: stringOfDate)! if date.timeIntervalSinceNow > 0{ otherUserPosts.append(post) } } }) print(otherUserPosts) DispatchQueue.main.asyncAfter(deadline: .now() + 2.5, execute: { self.present(otherUserActivePostsVC, animated: true, completion: nil) }) } 中使用管理员SDK,然后将其传递给您的请求应用,该怎么办?然后,这些应用可以通过调用mint a custom token登录到Firebase。