package io.gisbi.utils; import com.auth0.jwt.JWT; import com.auth0.jwt.interfaces.DecodedJWT; import io.gisbi.auth.bo.TokenUserBO; import io.gisbi.exception.DEException; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; public class TokenUtils { public static TokenUserBO userBOByToken(String token) { DecodedJWT jwt = JWT.decode(token); Long userId = jwt.getClaim("uid").asLong(); Long oid = jwt.getClaim("oid").asLong(); if (ObjectUtils.isEmpty(userId)) { DEException.throwException("token格式错误!"); } return new TokenUserBO(userId, oid); } public static TokenUserBO validate(String token) { if (StringUtils.isBlank(token)) { String uri = ServletUtils.request().getRequestURI(); DEException.throwException("token is empty for uri {" + uri + "}"); } if (StringUtils.length(token) < 100) { DEException.throwException("token is invalid"); } return userBOByToken(token); } public static TokenUserBO validateLinkToken(String linkToken) { if (StringUtils.isBlank(linkToken)) { String uri = ServletUtils.request().getRequestURI(); DEException.throwException("link token is empty for uri {" + uri + "}"); } if (StringUtils.length(linkToken) < 100) { DEException.throwException("token is invalid"); } DecodedJWT jwt = JWT.decode(linkToken); Long userId = jwt.getClaim("uid").asLong(); Long oid = jwt.getClaim("oid").asLong(); if (ObjectUtils.isEmpty(userId)) { DEException.throwException("link token格式错误!"); } return new TokenUserBO(userId, oid); } }