短信、邮箱验证码本地可以,部署到服务器接口却不能使用

应对公司双验证要求,对本系统做邮箱、短信验证码登录,本地开发正常发送,到服务器上部署却使用失败,已全部解决,记录坑。

一、nginx拦截

先打开你的服务器 nginx.conf 看看有没有做接口拦截。(本地可能做SpringSecuriy拦截,但nginx可能也做了拦截,至少我有。放开对应拦截)
短信、邮箱验证码本地可以,部署到服务器接口却不能使用_第1张图片

二、请求类型 Get

一开始我发生验证码是get请求,校验验证码是post请求。
在此拦截放开后,post请求正常执行,get请求不行,后端毫无响应。把发生验证码也改成post请求吧,写个dto的事。

三、邮箱正常发生校验、短信还是不行

经过上述方案,邮箱已经正常了,但短信还是不行。我用的是阿里云短信服务。
但因为改成post请求,后端有响应了,可以看到报错信息。

第一个问题是,timeout超时。报

com.aliyuncs.exceptions.ClientException: SDK.ServerUnreachable : Server unreachable: java.net.ConnectException: Connection timed out (Connection timed out)

看这个

巧了hhhhh我就是上海,直接抄了。但是紧接着又报这个

com.aliyuncs.exceptions.ClientException: InvalidTimeStamp.Expired : Specified time stamp or date value is expired.

服务器时间和阿里云时间相差超过15分钟

看这个

记得用sudo,需要管理员权限。

你可能感兴趣的:(服务器,运维)