/**
* 检验token的有效性
* @param token
* @return
*/
public boolean validApiToken(ApiToken token){
if(token == null){
return false;
}
AuthTokenDao tokenDao = AppContext.getBean("authTokenDao",
AuthTokenDao.class);
ApiToken dbToken = tokenDao.queryByTokenValue(token.getToken());
//过期时间在当前时间之前,token已过期
if(dbToken.getExpire() == null || dbToken.getExpire().before(new Date())){
return false;
}
//uid是否相等
if(dbToken.getUid() != token.getUid()){
return false;
}
//token value 值是否相等
return dbToken.getToken().equals(token.getToken());
}
个人觉得查询数据库时候尽量别把token或者 password直接查询出来。安全起见。