先做前端验证还是后端

先做前端验证还是后端,第1张

验证是肯定需要两次的,前端先做,一般都会用正则来匹配是否有非法字符,但同时一般会和数据库对接来验证用户名是否已被注册,但此时依然得先通过岁亏档前端来筛选是否存在非乎乱法字符在与后端数据库进行对接,否则不是浪费资源嘛,因此答案就是:前端先进行验空信证

有些用户直接没有登入,用postman等其它发送请求,虽然前端那个已经要身份注册和登入,但是

还是可以通过接口明销测试工神碧具发送请求。

解决办法

后端:

后端可以给每个用户绑定token,用户登入的时候,会有一个token,这样就不会绕过前端,直接绕过前端,直接请求创建接口,也可以发帖,需要做前后端双重验证

根据jwt(jsonwebtoken)

JWT

JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。

一个JWT实际上就是一个字游槐举符串,它由三部分组成,头部、载荷与签名。

对token的校验分为丛仔芹前端和后端

前端: Vue-Cli 2.x + axios

后端:SpringBoot 2.3.4

这里的话,userToken和userId放到sessionStorage是关键步骤

后端主要是使用拦截器来进行请求的拦截和校验

解释一下思路:

这里的话,针对需要拦截的路径和需要放行的路径进行配置就行

关于redisTemple的引入这里就不再赘述。

到这里为止,前后端的token就都做完了,后面就再讲讲前端的一些其他思路吧

对于登录状态的判断,前端可以在router.foreach上对路由进行状态判定,从而实现页面程度的拦截(具体可以参考最后的参考文章2)

在使用拦截器后,会发现前端部分请求会无法正常到达后端,百度后发现是因为 axios发送正式请求前会先发送一个嗅探请求 ,而嗅探请求是不携带我们封装的header的,所以会导致部分请求会无法成功戚蔽,解决的渗毕方式有很多种,这里的话是选择了在后端去直接处理

参考文章

1、SpringBoot加了拦截器后出现的跨域问题解析

https://blog.csdn.net/mrkorbin/article/details/104066979

2、Vue项目中实现用户登录及token验证

https://www.cnblogs.com/web-record/p/9876916.html


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12301976.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存