面试时说不说代码细节?

Java后端,大家在被问项目的时候,会把代码说得很详细吗?
比如说,被问到JWT怎么实现登录校验,我可能会这样说:这部分分为两个模块,发放token和校验token。
发放token,首先控制器要接收账号密码,然后调用service层的login方法,login方法会调用数据访问层的方法。先确定有没有那个账号,没有的话要抛出异常,然后根据账号查找密码。数据库里密码都是加密过的,所以需要对前端传来的明文密码进行相同的加密,然后再进行比对,如果密码对的上, 接下来就可以生成token了。jwt令牌创建时可以使用建造者模式,先用JwtBuilder的setclaims方法加入自定义信息,比如说员工ID,然后使用signwith 方法指定签名算法是HS256,再使用setExpiration方法指定有效期,最后调用compact方法,jwt令牌就创建好了,然后把令牌包装在结果类里,返回给前端就可以了。
校验jwt令牌的时候,需要用到拦截器,拦截器里只有prehandle方法,首先判断当前被调用的handle是不是控制器,如果不是就直接放行请求。然后从请求头中获取令牌,用Jwts.parseBuilder校验令牌,或者用JwtUtil.parseJWT也可以。如果令牌对了就放行,如果令牌不对,会抛出异常,所以要捕获异常,然后设置401状态码。
另外,登录成功时,拦截器还有另外一个功能,就是通过ThreadLocal记录当前登录的ID,以便AOP的切面类使用。
全部评论
这感觉没必要吧,但这能说明肯定是你做的
25 回复 分享
发布于 2024-04-18 23:29 北京
很难记得这么清楚...模块很多的
18 回复 分享
发布于 2024-04-18 19:21 上海
能说出大致流程就行,不必要每个函数名,每个接口名都记住,如果他非要这样子的话,你可以共享屏幕给他讲代码!
14 回复 分享
发布于 2024-04-19 23:05 广东
我也一步一步记过代码具体过程,不过春招面下来不管是快手字节这种大厂还是其他小厂问的更多的是实现思路,没碰到过需要说的这么细的情况,从八股聊到这个在项目中的具体应用倒是被问过很多次,也吃了几次亏,面后面试官评价是多写点代码
8 回复 分享
发布于 2024-04-21 14:29 福建
不会,说一下实现的流程和关键技术点就够了,面试官深挖再接着讲
5 回复 分享
发布于 2024-04-21 23:32 广东
自己写的,不是跟着视频抄 久了也会忘
3 回复 分享
发布于 2024-04-24 10:37 北京
苍穹外卖
1 回复 分享
发布于 2024-05-13 22:37 北京
记得清就说 记不清就说大概的
1 回复 分享
发布于 2024-04-20 18:39 四川
自己写的都会忘。连函数都能记得住
点赞 回复 分享
发布于 2024-06-01 13:30 上海
这样是不是太细了,功能很多时,你不能每个功能都记住吧。感觉了解流程,坑点、考点、特点就行
点赞 回复 分享
发布于 2024-05-19 19:31 北京
没遇到问这么细的,基本上思路清晰就可以
点赞 回复 分享
发布于 2024-04-24 09:27 浙江
不会的
点赞 回复 分享
发布于 2024-04-19 08:29 广东
这已经很细了吧
点赞 回复 分享
发布于 2024-04-18 16:02 重庆

相关推荐

自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
评论
26
182
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务