java基于JWT实现token认证

基于JWT实现token认证中心,本帖子最后附加认证中心、以及模拟外部项目调用认证中心的调用示例。

前一段时间由于公司项目需要,故搭了这么一套token认证中心,文章最后是最近整理出来的最简洁版的一个demo供大家参考。

进入正题

项目描述:该项目可独立发布仅做签发认证token使用,其他项目只需要引入 相对应的包即可。该项目包含了模拟了两个系统:一方为实际的业务系统(/api/invice接口以及拦截器部分为业务系统其它为认证中心系统),一方为认证中心系统。

项目托管至码云:https://gitee.com/zzyoumei/huakucha.git

欢迎各位dalao贡献代码+  联系小编加入项目组织qq:871032554

token认证项目结构

com.authtoken.JwtUtil 认证工具类 提供sign()签发token、verify()认证token、获取token中的附件信息的方法。

com.controller.JwtAuthToken 对外的/token签发、/verify认证、/api/invice模拟外部系统业务接口。

com.util.ReturnInfo 用来处理返回数据returninfo(String code,Object data,String msg) 示例:{“code”:”200″,”data”:””msg”:null} 、returnObjdata(Object obj)示例 是将传入的具体的实体对象转换为json输出

com.util.SystemUtil 用来处理获取urlform传参的参数toMap();

com.util..Upost 用于拦截器获取token认证返回结果httpRequest();

com.entity.returndata 返回结果实体

com.entity.token token实体

等其他辅助项目构建的类、方法

第三方对接:

com.Interceptor.TokenInterceptor 对外提供包的拦截器对指定需要校验的接口进行token认证,校验token 的逻辑放在拦截器中,不再涉及外部业务接口代码。

spring-mvc.xml中配置

针对token认证中心调用示例Example项目介绍:

  • 授权认证机制

简介

本文档主要针对HTTP API调用者,AIP开放平台使用OAuth2.0授权调用开放API,调用API时必须在HEADERS中带上accesss_token参数,获取Access Token的流程如下:

获取Access Token

请求URL数据格式

向授权服务地址http://ip/项目名称/connect/token.do发送请求(使用POST),并在HEADERS中带上以下参数:

grant_type: 必须参数,固定为client_credentials;

client_id: 必须参数,应用的API Key;

client_secret: 必须参数,应用的Secret Key;

例如:

http://zzyoumei.com:8080/Blossom-Briefs/connect/token.do

  • access_token:要获取的Access Token;
  • expires_in:Access Token的有效期(秒为单位,一般为两个小时);
  • 其他参数忽略,暂时不用;

 

  • 业务数据推送接口

数据推送接口地址http://ip/项目名称/connect/api/invice.do发送请求(使用POST),并在HEADERS中带上以下参数:

Authorization: 必须参数,固定为Bearer+空格+获取的 Access Token;

业务数据的参数以实际业务参数

http://zzyoumei.com:8080/Blossom-Briefs/connect/api/invice.do

 

Example下载:Exampletoken认证项目示例

 

扫码进入小程序

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Loading...