概念

  • Secure安全框架 基于 JWT 封装,每次接收到请求,会拦截到需要鉴权的API信息,并对其请求头携带的Token进行认证。
  • 若 Token 过期、不存在、错误,都会导致鉴权失败,继而无法访问到对应的API。
  • BladeX 的安全框架 Secure 在BladeX-Tool 中,有兴趣的小伙伴可以阅读下源码,查看实现原理。

如何通过认证

  1. 当我们调用一个受保护的API,会发现返回鉴权失败
  2. 想要通过认证,首先需要访问Auth接口,传入账号名密码,获得授权成功后的令牌信息,再组装后传入请求,这样就会通过认证了。
  3. 启动AuthApplicationUserApplicationLogApplicationSystemApplication四个服务(若使用BladeX-Boot则只需启动一个核心Application即可)
  4. 调用 http://localhost/blade-auth/oauth/token 传入对应参数,如下图所示则说明认证信息获取成功。上一章节已经详细讲到Oauth2,若还没有了解请前往5.1章节再次查阅,我们先快速调用查看效果,具体调用方式请看:https://sns.bladex.vip/article-14982.html


  5. 从返回的Json中取到 tokenTypeaccessToken,将他们拼接起来并以逗号隔开
  6. 设置请求头为Blade-Auth,请求头对应的值为 tokenType + ' ' + accessToken
  7. 设置请求头为 Authorization 值为 Basic c3dvcmQ6c3dvcmRfc2VjcmV0,这个后续章节会提到。
  8. 再次调用 http://localhost/blade-demo/api/info?name=Chill 发现返回 Hello, My Name Is: Chill 说明鉴权成功!
  9. 理论上看,所有业务API,都需要进行鉴权,这样才能保证整个系统的安全性,但也有个别特例情况,API 不需要认证也可以调用,这里就需要用到 Secure 的 API 放行配置。
  10. 有些业务 API 鉴权就算成功,也有可能需要根据角色权限来判断是否可以调用,这里就需要用到 Secure更细颗粒度的鉴权配置。