我有一个如下所示的网址,其中包含一个参数作为 JWT 令牌。
http://localhost/activate/khjdfbhdfgkfgyuyi674.gsdgfhksgdkfjbsdfghgsdfkdsfhsdfjsdufisdf.jhsdfkjsdfhjshdf
我的控制器中有一个处理此路由的功能,即
函数索引($token( {
$token是来自 URL 的 JWT 令牌
}
在我的路由配置中,我将路由定义为:
$route['激活/(:任何('] = '控制器名称/索引/$1'
但是,访问此路由的一些用户最终会得到包含部分 JWT 字符串的$token,即
khjdfbhdfgkfgyuyi674
而其他人最终会$token拥有完整的 jwt 字符串,即
khjdfbhdfgkfgyuyi674.gsdgfhksgdkfjbsdfghgsdfkdsfhsdfjsdufisdff.jhsdfkjsdfhjshdf
我未能重现问题可能是什么。看起来参数的$token只是检索字符串直到句点 (.( 或者用户单击其电子邮件中的链接,并且只有句点 (.( 之前的部分被触发!
这实际上是某些电子邮件客户端的问题。我们通过电子邮件发送完整的 url 链接,因此当一些用户单击链接的第一部分时,它会占用 url 的一部分,直到第一个句点(.(这使它成为一个不完整的链接。 因此,我们决定在电子邮件中的链接中添加一个按钮,以避免这种情况再次发生。