认证服务肯定要有用户信息,不然怎么认证是否为合法用户?因为是内部的调用认证,可以简单一点,用数据库管理就是一种方式。或者可以配置用户信息,然后集成分布式配置管理就完美了。
需要框架源码的朋友可以看我个人简介联系我
表结构
本教程中的案例把查数据库这一步骤省略了,大家可以自行补充,但是表的设计还是要跟大家讲解的。用户表的形式如图 1 所示。
相关的代码如下所示。
这里只有简单的几个字段,若大家有别的需求可以自行去扩展。代码中的 accessKey 和 secretKey 是用户身份的标识。
JWT 工具类封装
JWT 的 GitHub 地址是:https://github.com/jwtk/jjwt,依赖配置代码如下所示。
用工具类进行认证主要有以下几个方法:
生成 Token。
检查 Token 是否合法。
刷新 RSA 公钥以及私钥。
生成 Token 是在进行用户身份认证之后,通过用户的 ID 来生成一个 Token,这个 Token 采用 RSA 加密的方式进行加密,Token 的内容包括用户的 ID 和过期时间。
检查 Token 则是根据调用方带来的 Token 检查是否为合法用户,就是对 Token 进行解密操作,能解密并且在有效期内表示合法,合法则返回用户 ID。
刷新 RSA 公钥及私钥的作用是防止公钥、私钥泄露,公钥、私钥一般是写死的,不过我们可以做成配置的。集成配置管理中心后,可以对公钥、私钥进行动态修改,修改之后需要重新初始化公钥、私钥的对象信息。
获取 Token 代码如下所示。
检查 Token 是否合法代码如下所示。
完整代码如下所示。
认证接口
认证接口用于调用方进行认证时,认证通过则返回一个加密的 Token 给对方,对方就可以用这个 Token 去请求别的服务了,认证获取 Token 代码如下所示。
认证参数代码如下所示。
AuthService 中的 auth 方法就是根据 accessKey 和 secretKey 判断是否有这个用户。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70006413/viewspace-2794542/ ,如需转载,请注明出处,否则将追究法律责任。