技术饭 解决两个跨域但是同站、同域、同源的域名(Sec-Fetch-Site: same-site),通过接口请求设置session_id()改变PHPSESSID的问题

解决两个跨域但是同站、同域、同源的域名(Sec-Fetch-Site: same-site),通过接口请求设置session_id()改变PHPSESSID的问题,现象:1、两个https的二级域名解析在同一台服务器上,端口都是443;2、前端域名与接口域名同时在同一个浏览器打开,接口域名登录后台生成PHPSESSID,保存了登录状态;3、前端域名请求接口域名生成验证码,验证保存在session里面,由于访问接口,每次的会话session_id都是不一致,为了实现跨域验证码的验证,这个时候需要在接口端设置session_id(随机数),然后把这个随机值返回给前端,到时候验证的时候再设置session_id(随机数),这样会话才能保持一致,验证码才能通过验证;4、由于步骤3设置session_id(随机数)重新生成PHPSESSID后,导致了步骤2登录后台的PHPSESSID被改成了步骤3设置的PHPSESSID,这时候步骤2的登录状态就消失了,直接退出登录。

阅读全文 » 984天前
2021年08月14日

技术饭 vue.js前端获取thinkphp5.1后端api接口的验证码,验证码一直验证失败

最近需要做验证码接口,前端使用的vue.js接收,遇到如下问题:thinkphp5.1框架默认生成的验证码是session方式给到前端用户,验证码图片生成没有问题,出现问题是在验证验证码的步骤:每次验证都是显示验证码错误。测试了才知道api接口模式,访问不同接口的生成才session_id是不一样的,所以导致生成验证码与确认验证码的接口两个session_id不一致,那么解决问题的方式就是设置同一个session_id就可以了。

阅读全文 » 1313天前
2020年09月19日

技术饭 163邮箱smtp端口 25 不能用的解决方案

这几天要做邮箱发送验证码找回密码测试,本来在本地测试环境是没有任何问题的,可是部署到服务器上就是不行,一直报504错误,找了大半天的解决方案都不行,后续就看了163官方的邮件配置端口,确定是端口问题,切换成ssl方式然后端口改成465即可。

阅读全文 » 1924天前
2019年01月17日

技术饭 PHP7.2安装之后图片验证码验证失败,php.ini文件设置session.save_path失败的解决办法

PHP7.2安装之后图片验证码验证失败,php.ini文件设置session.save_path失败的解决办法,php5.3.3以前php-fpm还没有被php收录,配置php基本都在php.ini里面,php5.3.3及以后,除了在php.ini配置以外,还可以在php-fpm.conf里面配置。

阅读全文 » 2048天前
2018年09月15日

技术饭 从php5升级到php7之后,session不能传递的解决方案

从php5升级到php7之后,session不能传递的解决方案,刚刚把php升级到了php7.1.7,发现网站后台不能登录,一直提示验证码错误,可是明明GD库开启了,验证码也是显示的,经过测试发现是session为空了,折腾了大半天才知道php7的session默认设置是不传递的,有点坑啊。

阅读全文 » 2446天前
2017年08月13日