对于某些用户,以 JWT 作为参数的代码点火器路由无法按预期工作



我有一个如下所示的网址,其中包含一个参数作为 JWT 令牌。

http://localhost/activate/khjdfbhdfgkfgyuyi674.gsdgfhksgdkfjbsdfghgsdfkdsfhsdfjsdufisdf.jhsdfkjsdfhjshdf

我的控制器中有一个处理此路由的功能,即

函数索引($token( {

$token是来自 URL 的 JWT 令牌

}

在我的路由配置中,我将路由定义为:

$route['激活/(:任何('] = '控制器名称/索引/$1'

但是,访问此路由的一些用户最终会得到包含部分 JWT 字符串的$token,即

khjdfbhdfgkfgyuyi674

而其他人最终会$token拥有完整的 jwt 字符串,即

khjdfbhdfgkfgyuyi674.gsdgfhksgdkfjbsdfghgsdfkdsfhsdfjsdufisdff.jhsdfkjsdfhjshdf

我未能重现问题可能是什么。看起来参数的$token只是检索字符串直到句点 (.( 或者用户单击其电子邮件中的链接,并且只有句点 (.( 之前的部分被触发!

这实际上是某些电子邮件客户端的问题。我们通过电子邮件发送完整的 url 链接,因此当一些用户单击链接的第一部分时,它会占用 url 的一部分,直到第一个句点(.(这使它成为一个不完整的链接。 因此,我们决定在电子邮件中的链接中添加一个按钮,以避免这种情况再次发生。

相关内容

  • 没有找到相关文章

最新更新