java - 使用Token限制用户提交请求一次有效,但经常前端取不到Token
高洛峰
高洛峰 2017-04-17 17:43:12
0
2
423

应用使用Struts2Ajax构建,其中某一业务需要使用Token,限制用户提交一次有效,Token后端是放Redis中,使用SESSIONID作为Key(相当于放SESSION中),前端使用一个JS变量来接收生成的Token。在后续提交业务请求时,需要将此JS中的Token值传递到后端,用来校验,但现在发现很多请求没有Token值,求解。
JS里的Token变量是在加载页面(index.jsp)时由一个Action转发过来的,这个过程中会写入Token值到JS变量中

<script >
var token = "${token}" ;
</script>

后面的业务使用Ajax提交,提交时参数使用token变量作为参数之一提交到后端进行校验,后端日志发现大量请求没有Token值,是什么原因,求解!

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
伊谢尔伦

Pour simplifier la question, selon la signification de la question, la partie suivante du traitement du jeton doit être ignorée. Actuellement, il n'y a pas de jeton dans la requête ajax. Ensuite, vous devez d’abord confirmer si le jeton sur la page a été généré. Vous pouvez faire un simple test de résistance pour voir les résultats. S'il n'y a pas de problème avec le code js, alors la valeur sera envoyée tant qu'elle existe. Il semble donc qu'il puisse y avoir un problème avec le jeton précédent, empêchant cette valeur d'être affichée sur la page.

左手右手慢动作

Il n'est pas recommandé de coder en dur le jeton dans le code js. Il est recommandé de l'écrire dans un domaine caché. Ensuite, js récupère à nouveau la valeur.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal