首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firebase:如何使用相同的自定义令牌从不同的环境(JS和iOS)进行身份验证?

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

Stack Overflow用户
提问于 2016-03-24 15:53:41
回答 1查看 951关注 0票数 1

我正在尝试使用相同的令牌(服务器端生成- PHP)来在web(JS)和iOS应用程序(SDK)中对用户进行编码。以下是我为用户所做的步骤:

  1. 生成一个JWT令牌:

我使用的是推荐的lib https://github.com/firebase/firebase-token-generator-php

代码语言:javascript
复制
$generator = new TokenGenerator($firebaseSecret);
$token = $generator->setOption('expires', strtotime('+1 day'))
    ->setData(array('uid' => $user->id))
    ->create();
  1. 使用令牌通过Javascript对用户进行测试: Ref.authWithCustomToken(令牌,registerHandler);registerHandler:函数(错误,authData) { if (错误){console.log(“登录失败!”,错误);}authData{console.log(“登录成功”);}

所有操作都是正确的,这是用户第一次登录并准备滚动。(防火墙会话设置为1年)

然而:

  1. 如果我注销并使用相同的方法再次登录,使用相同的令牌,则会得到以下错误:"INVALID_TOKEN:未能验证MAC“。如果我使用另一个新的令牌,那么所有的功能都会再次生效。
  2. 如果我将令牌(未使用)发送到我也正在使用的iOS应用程序,那么我总是会收到上面的错误。

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

EN

回答 1

Stack Overflow用户

发布于 2016-03-25 13:15:34

最后,我自己发现了这个问题。我会在这里发布这篇文章,这样以后的开发者就可以避免我遇到的问题了。

总是要小心你的数据存储在哪里。我的令牌被存储到DB中的varchar类型列中,但是它们比256个字符大,所以没有正确地保存它们。在更改列类型后,一切工作都完美无缺。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36204517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档