Json Web 令牌 JWT
Posted
技术标签:
【中文标题】Json Web 令牌 JWT【英文标题】:Json Web Token JWT 【发布时间】:2016-08-01 18:53:29 【问题描述】:我正在尝试通过使用 JSON Web Tokens (JWT) 来实现身份验证。我在 google 和 GitHub 中进行了很多搜索,但没有发现任何有用的信息。在 JWT(json web token)或公共 API 上是否有任何可用于测试目的的预构建 Web 服务?
【问题讨论】:
您使用的是哪个框架?有很多库可以处理 JWT,客户端就像服务器端一样。例如,您可以浏览auth0's github account。 你可以从github.com/brijeshmavani/JWTWebAPI看到它 【参考方案1】:我不知道你是否可以在互联网上找到一些练习。但是我有一些使用 JWT 的例子。
基本上,您可以让 I 类具有两种方法:一种方法用于生成 Toke,另一种方法用于验证作为参数传递的令牌:
public class JwtToken
private static final Key secret = MacProvider.generateKey(SignatureAlgorithm.HS256);
private static final byte[] secretBytes = secret.getEncoded();
private static final String base64SecretBytes = Base64.getEncoder().encodeToString(secretBytes);
public static String generateToken(Login login)
Date now = new Date();
Date exp = new Date();
String token = Jwts.builder()
.setId(login.getCpf())
.setIssuedAt(now)
.setNotBefore(now)
.setExpiration(exp)
.signWith(SignatureAlgorithm.HS256, base64SecretBytes)
.compact();
return token;
public static boolean verifyToken(String token)
try
Claims claims = Jwts.parser().setSigningKey(base64SecretBytes).parseClaimsJws(token).getBody();
return true;
catch (Exception e)
// TODO Auto-generated catch block
e.printStackTrace();
return false;
【讨论】:
【参考方案2】:如果您需要使用 JSON Web 令牌进行身份验证,您可以使用此 seed。 这个种子已经使用本地护照策略实现了注册和登录功能。
您只需要开发您的客户端 UI。
【讨论】:
【参考方案3】:您的问题对于您究竟想将 JWT 用于什么和 With 的问题非常模糊,因此请阅读有关如何正确提问here 的内容。
不过,我会说,以下指南或许可以帮助您将 JWT 实施到您自己的系统中。它是 Node.JS 的指南,它逐步解释了你在做什么以及你的代码在做什么。
Node.js API with JWT authentication
这将允许您快速设置自己的服务器和 API 以进行测试。 不过里面有很多信息,你应该可以找到的。
【讨论】:
以上是关于Json Web 令牌 JWT的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中解码 JWT(JSON Web 令牌)令牌?
为什么令牌上有JWT(JSON Web令牌)前缀?回复:JsonWebTokenError:无效令牌