Zuul鉴权和添加用户服务
要实现如下的功能

先创建一个user服务


加上客户端的注解

从配置中心获取user服务的配置

user服务在配置文件的配置,要引入redis的配置

启动成功后在eureka管理页面查看注册的服务,看到服务以及注册上来了

因为user服务以后肯定是要对外提供接口的,所以改造成多模块,目录结构如下

把刚开始的user的pom文件里面dependencies以及build全部剪切到其Server的pom文件中,再次启动,启动没问题就确定多模块化正常。
user服务的要实现登录功能,我在这里就不手把手教了,代码在https://github.com/hmilyos/springCloud-user.git base分支。
需要注意的点是买家登录,我会往cookie写openid、redis写openid_具体用户的openid

卖家登录,我会往cookie写token、redis写token_uuid

涉及到需要的代码有order:https://github.com/hmilyos/springCloud-order.git auth分支
product:https://github.com/hmilyos/springCloud-product.git auth分支 表结构在其doc文件夹下
user: https://github.com/hmilyos/springCloud-user.git base分支
api-gateway: https://github.com/hmilyos/springCloud-api-gateway.git auth分支
把代码pull下来后,先把api-gateway里面这两个买家卖家的过滤器都置为false,关闭不启用它

然后启动项目,通过网关来访问order的create、finish以及product的list的api,都是能访问的



此外还需要在api-gateway,配置一下,可以传递敏感信息

这时候针对create和finish做权限限制了,为了后期的维护,最好是分开来写这些判断
针对创建订单,要判断是否登录,同时还得是买家角色,在是否开启这里判断当前请求的是不是创建订单,是就开启,不是就不启用。

先判断是否请求的是finish接口,是就启用,不是就不启用,
是就继续判断是否登录,登录角色是不是卖家

在未登录的情况下,访问create失败

在未登录的情况下,访问finish失败

因为list是不用做权限判断的,所以访问正常

登录买家账号



清除cookie和redis信息后,登录卖家账号

在卖家登录的情况下,访问finish成功

在卖家登录的情况下,访问create失败

如此,我们针对买家卖家的访问权限就完成了。