问题
最近要给公司app的短信码接口加上一个图片验证码验证,在验证码这方面我们一般选择session传值,但是在app架构,请求通常是无状态的statusless
。这就导致了app在请求每个接口时,服务端生成的sessionid都是不同的,在图片验证码中生成的数据无法在短信验证码接口中使用。
解决方案
为此我们我们测试了两种解决方案
第一种
APP保存第一次app访问图片验证码接口时返回的Response Headers中的Set-Cookie PHPSESSID
,在访问时将PHPSESSID
传递到发送短信接口中,使用PHPSESSID
将存储在数据库中的session值取出,再进行相应的操作。
第二中
保存第一次app访问图片验证码接口时返回的Response Headers中的Set-Cookie PHPSESSID
,在访问发送短信接口时构造一个Request Headers
,在Set-Cookie
中携带PHPSESSID
,此时后端可以使用正常的使用$_SESSION
取值