概念
- Secure安全框架 基于 JWT 封装,每次接收到请求,会拦截到需要鉴权的API信息,并对其请求头携带的Token进行认证。
- 若 Token 过期、不存在、错误,都会导致鉴权失败,继而无法访问到对应的API。
- BladeX 的安全框架 Secure 在BladeX-Tool 中,有兴趣的小伙伴可以阅读下源码,查看实现原理。
如何通过认证
- 当我们调用一个受保护的API,会发现返回鉴权失败
- 想要通过认证,首先需要访问Auth接口,传入账号名密码,获得授权成功后的令牌信息,再组装后传入请求,这样就会通过认证了。
- 启动
AuthApplication
、UserApplication
、LogApplication
、SystemApplication
四个服务(若使用BladeX-Boot则只需启动一个核心Application即可) - 调用 http://localhost/blade-auth/oauth/token 传入对应参数,如下图所示则说明认证信息获取成功。上一章节已经详细讲到Oauth2,若还没有了解请前往5.1章节再次查阅,我们先快速调用查看效果,具体调用方式请看:https://sns.bladex.vip/article-14982.html
- 从返回的Json中取到
tokenType
和accessToken
,将他们拼接起来并以逗号隔开 - 设置请求头为
Blade-Auth
,请求头对应的值为tokenType
+' '
+accessToken
- 设置请求头为
Authorization
值为Basic c3dvcmQ6c3dvcmRfc2VjcmV0
,这个后续章节会提到。 - 再次调用 http://localhost/blade-demo/api/info?name=Chill 发现返回
Hello, My Name Is: Chill
说明鉴权成功! - 理论上看,所有业务API,都需要进行鉴权,这样才能保证整个系统的安全性,但也有个别特例情况,API 不需要认证也可以调用,这里就需要用到 Secure 的 API 放行配置。
- 有些业务 API 鉴权就算成功,也有可能需要根据角色权限来判断是否可以调用,这里就需要用到 Secure更细颗粒度的鉴权配置。