Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Jwt | 7,060 | 6,817 | 535 | 4 days ago | 53 | February 25, 2023 | 7 | bsd-3-clause | PHP | |
A simple library to work with JSON Web Token and JSON Web Signature | ||||||||||
Pyjwt | 4,692 | 9,443 | 2,192 | 9 days ago | 48 | July 18, 2023 | 18 | mit | Python | |
JSON Web Token implementation in Python | ||||||||||
Jsmn | 3,265 | 4 months ago | 89 | mit | C | |||||
Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket | ||||||||||
Node Jwt Simple | 1,320 | 7,828 | 646 | 2 years ago | 13 | March 30, 2019 | 33 | mit | JavaScript | |
JWT(JSON Web Token) encode and decode module for node.js | ||||||||||
Vault Ui | 1,299 | 1 | 5 years ago | 3 | October 04, 2017 | 50 | other | JavaScript | ||
Vault-UI — A beautiful UI to manage your Vault, written in React | ||||||||||
Frangipanni | 1,190 | 3 months ago | 6 | April 10, 2021 | 7 | mit | Go | |||
Program to convert lines of text into a tree structure. | ||||||||||
Token Lists | 1,162 | 387 | 5 days ago | 33 | July 05, 2023 | 185 | mit | TypeScript | ||
📚 The Token Lists specification | ||||||||||
Spring Boot Jwt | 1,022 | 2 years ago | mit | Java | ||||||
JWT auth service using Spring Boot, Spring Security and MySQL | ||||||||||
Jwt | 844 | 6 years ago | mit | Java | ||||||
webapp用户身份认证方案 JSON WEB TOKEN 实现Deme示例,Java版 | ||||||||||
Jwt Cpp | 666 | a month ago | 5 | June 22, 2022 | 38 | mit | C++ | |||
A header only library for creating and validating json web tokens in c++ |
.
├── README.md
├── src
| └── com
| |── filter
| | └── Filter0_CrossOriginResource.java (跨域过滤器)
| | └── Filter1_CheckToken.java (token校验过滤器)
| ├── jwt
| │ └── Jwt.java
| │ └── JwtTestCase.java (测试用例)
| │ └── TokenState.java (token状态枚举)
| |
| └── servlet
| └── AuthorServlet.java
├── WebRoot
| |── WEB-INFO
| |── index.jsp
| |── login.html
| |── main.html
| └── jquery-2.1.0.js
本项目依赖于下面jar包:
核心类Jwt.java结构:
2个静态方法createToken和validToken,分别用于生成TOKEN和校验TOKEN; 定义了枚举TokenState,用于表示验证token时的结果,用户可根据结果进行不同处理:
Map<String , Object> payload=new HashMap<String, Object>();
Date date=new Date();
payload.put("uid", "291969452");//用户id
payload.put("iat", date.getTime());//生成时间
payload.put("ext",date.getTime()+1000*60*60);//过期时间1小时
String token=Jwt.createToken(payload);
System.out.println("token:"+token);
String token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOiIyOTE5Njk0NTIiLCJpYXQiOjE0NjA0MzE4ODk2OTgsImV4dCI6MTQ2MDQzNTQ4OTY5OH0.RAa71BnklRMPyPhYBbxsfJdtXBnXeWevxcXLlwC2PrY";
Map<String, Object> result=Jwt.validToken(token);
String state=(String)result.get("state");
switch (TokenState.getTokenState(state)) {
case VALID:
//To do somethings
System.out.println("有效token");
break;
case EXPIRED:
System.out.println("过期token");
break;
case INVALID:
System.out.println("无效的token");
break;
}
System.out.println("返回结果数据是:" +result.toString());
跨域过滤器一定要比其他过滤器先执行,不然会有些问题:在web.xml文件中,过滤器的执行顺序是按照在web.xml中从上到下书写的顺序来执行的;在servlet3.0注解中,filter执行顺序是按照文件名自然排序来决定执行顺序的,比如名字叫A的filter就比B先执行