项目三每天面试题

本文介绍了作者参与的物流项目,基于SpringCloud的微服务架构,涉及智能调度、权限管理、微信小程序登录集成、JWTtoken管理和网关认证。项目中采用了Git和Jenkins进行版本控制和持续集成,以及与权限管家的集成以实现统一权限管理。
摘要由CSDN通过智能技术生成

day01

1、简单介绍下你做的物流项目。

我最近做过的一个项目是物流类的项目叫做xxxx 是公司自研的(是外包到XXX公司做的)一个项目, 是基于springCloud微服务架构体系, 核心功能是揽件成功后通过智能调度快递员、智能管控车辆、线路规划等核心业务, 可以大幅度提升人效及管控效率, 节省运输成本。

项目产品主要有4个端:

用户端:基于微信⼩程序开发,外部客户使用,可以寄件、查询物流信息等。

快递员端:基于安卓开发的手机APP,公司内部的快递员使用,可以接收取派件任务等。

司机端:基于安卓开发的手机APP,公司内部的司机使用,可以接收运输任务、上报位置信息等。

后台系统管理:PC端,公司内部管理员用户使用,可以进行基础数据维护、订单管理、运单管理等

2、在项目中,你们git是怎么使用的?怎么进行持续集成的?提交git后如何自动进行构建?

我们项目中是使用Gogs对项目代码进行管理的。基于master打分支,基于分支进行发布,不允许在master分支上开发,开发阶段使用dev分支,有新任务时在deve分支上打出自己的分支,命名方式以Feature开头,完成后提交并合并到dev分支上,上线时由一个同事统一合并到master上。

使用Jenkins做持续集成。

提交git后进入jenkins页面,点击任务的执行构建按钮自动构建,方便测试人员进行测试

3、聊聊你们项目中的权限管家,它有什么用?为什么要这么做?

我们项目中的权限管家,是一个集中的权限管理平台,该系统管理着公司内部的员工信息以及权限,它是基于RBAC(Role Based Access Control)权限管理模型设计的,通过设置角色来设置相应的权限。公司之所以开发一个这样的权限平台,主要是方便多个系统之间的可以共用这一套服务,避免重复开发用户权限功能。

4、你负责了哪个端的登录业务的开发?具体聊聊是怎么做的。

此问题不要只说登录,可以把登录后对token的管理也描述一下

比如:在四个端都有登录,快递员端、司机端、后台系统管理都是内部员工的登录,我们公司有一个权限中台,具体登录的业务是通过远程调用中台实现的,登录后返回token,以后携带token访问,在网关统一检验和解析token,获取到userId后放到请求头中再路由到微服务,微服务写了一个拦截器统一获取userId放到ThreadLocal中,以后在controller或Service需要使用就从ThreadLocal中获取。

用户端没的登录有用权限中台,就是用微信的登录流程实现的,而用户端的token使用的是双token方式

day02

1、有对接过微信小程序登录吗?说说集成的流程?

有的。我在物流项目中实现了用户端的登录,整体就是使用Hutool工具提供的HttpRequest类实现了远程调用微信小程序的相关接口

具体流程是前端获取登录code,将code传递到后端,后端再请求微信服务端,就可以获取到openid等信息,再根据openid判断是否有用户,如果有就生成Token返回,如果没有用户新增用户并生成token返回,其中还调用了获取了用户真实的手机号的api。

2、微信接口中的access_token你们有没有设置有效期?有效期时间是多少?

用户端用了双token的方式,access_token是5分钟,refresh_token是24小时

3、在项目中,用户登录成功后的token你们是怎么生成的?有效期是多久?有考虑过双token模式吗?谈谈你的想法。

在我们项目中,用户登录成功后,我们是使用jwt生成token的,其中加密方式使用的是RSA非对称加密,并且我们用的是双token三验证的模式,会同时生成一对长短token,分别是access_token、refresh_token,时间分别是5分钟和24小时,当access_token失效后,前端会通过refresh_token进行刷新动作,会重新获取到一对长短token,依次往复。

4、如何让token提前失效?

jwt生成的token是无状态的,无法进行提前失效,如果需要提前失效的话,就需要将token转化成有状态的,方法有很多,比如可以将token存入到redis中,并且设定有效期时间,需要提前将token失效的话,直接将redis中的数据删除即可。

5、说说统一网关中是如何进行认证与鉴权工作的?在网关中如何自定义过滤器?

我们在网关中进行认证和鉴权工作,主要是校验请求头中的token是否有效以及请求用户是否具备允许访问的角色,通过角色来校验是否有权限。网关中自定义过滤器,主要是通过编写AbstractGatewayFilterFactory子类实现,

其匹配规则是ManagerToken --> ManagerTokenGatewayFilterFactory。

6、项目中的用户权限是如何管理的?如何与权限管家对接?

我们项目中的权限是通过对接公司内部的权限管理平台来实现的,我们是通过它提供的SDK和API进行对接的,就可以通过SDK中提供的类进行登录、查询角色等操作。

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 请介绍一下你的项目管理经验。 回答:在过去的几年里,我担任了多个项目项目经理,并成功地完成了这些项目。我曾负责一些大型项目的领导和管理,包括需求分析、项目规划、团队管理、进度跟踪、质量保证以及客户沟通等。我还拥有良好的风险管理技能,能够在项目过程中及时发现和解决问题。 2. 请问您在项目中遇到的最大的挑战是什么?如何解决? 回答:在我的一个项目中,我们面临了一个非常紧迫的时间表,需要在极短的时间内完成大量的工作。为了解决这个问题,我们采取了以下措施:第一,通过制定详细的项目计划和时间表来确保团队成员清楚地了解他们需要做什么以及何时需要完成。第二,我们采用了敏捷方法来加快项目进展,每天开会跟踪团队进展。最后,我们严格控制进度,确保项目按时完成。 3. 请问您如何管理项目团队? 回答:我认为管理项目团队的关键是建立良好的沟通和信任。我喜欢与我的团队成员保持密切联系,定期与他们开会并了解他们的进展情况。在团队中,我鼓励每个人发挥自己的专业知识和技能,同时也尽可能地为他们提供所需的支持和培训。在处理问题时,我喜欢采用协作的方法,让团队成员共同参与,共同解决问题。 4. 请问您如何管理项目风险? 回答:我认为管理项目风险的关键是在项目开始时就进行风险评估,并确定可能的风险和应对措施。在项目过程中,我们会定期评估风险,并对已经发生的风险采取相应的应对措施。我也会鼓励团队成员提出可能的风险和解决方案,以确保我们能够及时发现和解决问题。最后,我会在项目结束时进行风险回顾,总结经验教训,为下一个项目做好准备。 5. 请问您如何处理项目中的冲突? 回答:我认为处理项目中的冲突的关键是采取开放和诚实的沟通方式。我会与涉及方进行面对面的谈话,尽可能了解他们的立场和需求。在找到解决方案之前,我会与团队成员一起讨论可能的解决方案,并确保每个人都能够接受。如果必要,我会寻求高级管理层的支持来解决问题。最后,我会确保解决方案得到记录和跟踪,以确保问题不会再次发生。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值