1.常见的加密方式?
可逆加密对称加密: 加密解密使用同一个密钥优点:算法公开,性能好。速度快缺点:没有非对称加密安全性好场景:项目中参数加密非对称加密:使用前 先生成私钥和公钥如果用私钥加密 可以用公钥解密如果用公钥加密 可以用私钥解密优点:安全性好缺点:性能差场景:第三方调用,参数签名不可逆加密:MD5 加密不可逆加密 每次加密密文相同 容易被破解MD5 + salt (随即成生成的混淆字符串)
2.项目中是如何进行登录认证的?
● 前端所有的请求都需要经过网关路由到微服务,我们在网关准备了一个全局过滤器,用于登录认证基本流程如下
○ 获取请求路径
○ 判断路径是否为白名单路径,如果是直接放行
○ 如果不是,则检查请求头中是否携带token,如果没有token,直接终止请求并返回401
○ 如果携带token,会使用我们封装的jwt工具类,解析token是否有效,无效终止请求并返回401
○ 有效,会获取token中存储的用户信息,将用户id设置到header中路由给其他微服务
具体实现:
实现GlobalFilter 接口 实现filter(exchange,chain)
● 登录功能就是白名单路径,登录验证流程如下
○ 接收前端传入的用户名和密码之后,我们会根据用户名先检查用户是否存在,
○ 如果存在该用户,则会获取加密后的密码和加密时用的盐,然后对用户输入的密码进行加盐加密处理,再比较密码是否正确,
○ 验证通过之后,我们会生成一个token返回给客户端
3.什么是无状态登录?
用户在登陆后,后端不维护用户的信息,只是颁发token凭证
4.什么是JWT Token?
JSON Web token是一个开放的行业标准,它定义了一种简洁的、自包含的协议格式,用于在通信双方
传递json对象,传递的信息经过数字签名可以被验证和信任。
主要由三部分:
header:头信息 {"token类型":" ", "加密类型":"HS256"}
payload:载荷信息 {"自定义的json数据"}
signature: 签名信息 HS256(base64(头信息)+ "."+base64(载荷信息),密钥)
5.如何保证token令牌不被篡改?
通过签名:signature 用于防止jwt内容被篡改,这个部分使用base64url将前两部分进行编码,
服务端接收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样,说明参数被更改过,
就会使篡改之后的令牌无效
6.token令牌能否保证数据安全?
token是一门认证技术,不是为了保证数据安全的
token令牌的第二部分负载中,不建议存放敏感信息
使用 token和https协议进行数据安全保证
7.请介绍下用户实名认证模块的业务流程?
业务描述:
app用户 想要成为自媒体用户,需要先进行实名认证,实名认证需要提交:身份证正面照、反面照、
活体检测照片,手持身份证照片提交到后台,运营人员可以在后台审核模块对信息及逆行审核
审核通过: 为用户开通自媒体账户,并创建一个作者信息
具体流程:
1.根据实名认证id查询实名认证信息
2.判断状态是否为 待审核 1
3. 根据前端操作将审核状态修改为2 失败 或 9通过
4.审核通过
远程开通自媒体账户
远程开通作者信息
8.Feign的作用?
实现微服务之间的http远程调用
feign是一种声明式、模板化的HTTP客户端,主要作用是简化微服务之间的调用。
在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,
开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求
9.Hystrix的作用?
● Hystrix的本质作用是当系统资源过载(Over Load Control)时提供服务状态保护机制,包括下面四个方面
● 熔断:当失败率达到阈值时自动触发降级(如因网络故障或超时造成的失败率高),熔断器触发的快速失败会进行快速恢复
● 隔离(线程池隔离和信号量隔离):限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他调用
● 降级:超时降级、资源不足时(线程或信号量)降级,降级后可以配合降级接口返回托底数据,做到优雅降级
● 缓存:提供了请求缓存、请求合并的实现方法
降级服务: 为微服务的调用,准备一个兜底策略,当调用失败时可以走兜底策略,不至于报异常
比如:返回默认值、友好错误提示、备用方案等
10.项目中Feign的具体使用?
1.在项目中,我们把需要调用的微服务的feign抽取成一个模块
2.在模块中对需要调用的微服务创建feign远程接口
3. 然后在创建一个服务降级类,当远程调用失败时,返回设定的默认值
4.我们还设定了feign的日志等级
5. 然后通过自动装配开启feign功能,只要导入feign模块的依赖就可以使用feign的功能
