gpt4 book ai didi

php - Firebase:如何使用相同的自定义 token 从不同环境(JS 和 iOS)进行身份验证?

转载 作者:行者123 更新时间:2023-11-28 17:51:04 24 4
gpt4 key购买 nike

我正在尝试使用相同的 token (服务器端生成 - PHP)来验证网络(JS)和 iOS 应用程序(SDK)中的用户。这些是我对用户进行授权的步骤:

  1. 生成 JWT token :

我正在使用推荐的库 https://github.com/firebase/firebase-token-generator-php :

$generator = new TokenGenerator($firebaseSecret);
$token = $generator->setOption('expires', strtotime('+1 day'))
->setData(array('uid' => $user->id))
->create();
  1. 使用 token 通过 Javascript 对用户进行身份验证:

    ref.authWithCustomToken(token, registerHandler);
    registerHandler: function(error, authData)
    {
    if (error) {
    console.log("Login Failed!", error);
    } else {
    console.log("Login Success!");
    }

一切正常,第一次,用户登录并准备好滚动。(Firebase session 设置为 1 年)

但是:

  1. 如果我注销并使用相同的方法使用相同的 token 再次登录,我会收到以下错误:“INVALID_TOKEN:无法验证 MAC。”。如果我使用另一个新 token ,一切都会再次正常。
  2. 如果我将 token (未使用)发送到我也在使用的 iOS 应用程序,我会一直收到上述错误。

有人可以分享一些关于这种情况的信息吗?任何帮助将不胜感激。

最佳答案

最后我自己发现了问题。我会在此处发布此内容,以便 future 的开发人员避免遇到我遇到的问题。

请始终注意存储数据的位置。我的 token 存储在数据库中的 varchar 类型列中,但它们大于 256 个字符,因此未正确保存。更改列类型后一切正常。

关于php - Firebase:如何使用相同的自定义 token 从不同环境(JS 和 iOS)进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36204517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com