Playframework 在play框架中实现访问令牌的最佳方法是什么

Playframework 在play框架中实现访问令牌的最佳方法是什么,playframework,playframework-2.2,playframework-2.1,playframework-2.3,playframework-2.5,Playframework,Playframework 2.2,Playframework 2.1,Playframework 2.3,Playframework 2.5,我正在做一个PlayFramework2.5项目,它为开发者提供API服务 我现在想用play框架实现访问令牌,以便控制服务器API的访问 我已经实现了应用程序密钥和应用程序密钥。任何人都可以建议如何生成访问令牌吗?使用JavaWebTokens(jwt),它将始终为您提供唯一的密钥 public String getJWT(){ Date now = new Date(); long t = now.getTime(); Date expirationTime =

我正在做一个PlayFramework2.5项目,它为开发者提供API服务

我现在想用play框架实现访问令牌,以便控制服务器API的访问

我已经实现了应用程序密钥和应用程序密钥。任何人都可以建议如何生成访问令牌吗?

使用JavaWebTokens(jwt),它将始终为您提供唯一的密钥

public String getJWT(){
     Date now = new Date();
     long t = now.getTime();
     Date expirationTime = new Date(t + 1300819380);    

     return Jwts.builder()
          .setSubject("any subject")
          .setIssuedAt(now)
          .setExpiration(expirationTime)
          .signWith(SignatureAlgorithm.HS512, "username")
          .compact();
}
<--! to validate jwt -->
public boolean validateJWT(String jwt){
    try {
        Jwts.parser().setSigningKey("username").parseClaimsJws(jwt);
        return true;
    } catch (Exception e) {
        // TODO: handle exception
        return false;

    }

}
公共字符串getJWT(){
现在日期=新日期();
long t=now.getTime();
日期到期时间=新日期(t+1300819380);
返回Jwts.builder()
.setSubject(“任何主题”)
.setIssuedAt(现在)
.setExpiration(到期时间)
.signWith(SignatureAlgorithm.HS512,“用户名”)
.compact();
}
公共布尔validateJWT(字符串jwt){
试一试{
parser().setSigningKey(“用户名”).parseClaimsJws(jwt);
返回true;
}捕获(例外e){
//TODO:处理异常
返回false;
}
}

客户端如何使用生成的令牌与云通信?客户端是否需要调用一个api来获取令牌,然后使用令牌调用另一个api?将令牌存储在web浏览器的本地,并在每次调用api时将其添加到http头中,验证令牌是否有效并处理请求。谢谢,当令牌过期时,是否需要刷新令牌以请求新令牌?过期时,用户应再次登录,登录时应生成并存储此令牌