【问题标题】:Where to find auth.token data, inside firebase objects在 firebase 对象中哪里可以找到 auth.token 数据
【发布时间】:2017-02-16 10:33:30
【问题描述】:

我正在使用signInWithCustomToken,身份验证后我无法找到我在服务器端设置的自定义声明数据的存储位置(createCustomToken)。

我可以通过 auth.token 在 firebase 规则中看到它们,但是如何从我的 javascript 代码中通过 firebase 对象访问它们。

【问题讨论】:

标签: firebase firebase-authentication firebase-security


【解决方案1】:

令牌中的信息不会自动提供给您的应用程序代码。但它是嵌入到令牌中的,所以你可以自己解码:

function parseJwt (token) {
    var base64Url = token.split('.')[1];
    var base64 = base64Url.replace('-', '+').replace('_', '/');
    return JSON.parse(window.atob(base64));
};

var user = firebase.auth().currentUser
user.getToken().then(data => {
    console.log(parseJwt(data));
});

解析JWT的函数来自这个问题:How to decode jwt token in javascript

您会注意到它不会验证 ID 令牌是否有效。在客户端代码中这对我来说似乎很好,因为无论如何用户自己都会使用这些信息。但如果您确实想验证令牌,则必须使用更复杂的方法。

【讨论】:

  • 只是出于好奇,为什么该信息不包含在用户对象中,对我来说,在signInWithCustomToken 之后所有自定义字段都将在我的用户或 auth() 对象中可用是有道理的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2020-01-30
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2012-08-13
  • 1970-01-01
相关资源
最近更新 更多