package com.example.demo.unity;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.example.demo.dao.Admin;
import org.slf4j.LoggerFactory;
import javax.xml.transform.Result;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
public class Base implements Serializable {
@SuppressWarnings("unused")
private static final org.slf4j.Logger log = LoggerFactory.getLogger(Result.class);
private static final long serialVersionUID = -1802122468331526708L;
private int code = 200;
private String msg = "待处理";
private Map<String, Object> data = new HashMap<String, Object>();
public Base(){}
public Base(int code, String msg){
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Map<String, Object> getData() {
return data;
}
public void setData(Map<String, Object> data) {
this.data = data;
}
public void putData(String key, Object value) {
data.put(key, value);
}
public void removeData(String key) {
data.remove(key);
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
/**
* 生成token
* @param admin Object
* @return String
*/
public String getToken(Admin admin){
String token = "";
//JWT.create()创建token withAudience保存在token中的信息 Algorithm.HMAC256()使用HS256生成token,密钥是用户密码
token = JWT.create().withAudience(admin.getId()).sign(Algorithm.HMAC256(admin.getPassword()));
return token;
}
}
使用
public ResponseEntity<Base> login(@RequestBody Map<String,String> person){
Base res = new Base(200,"ok");
String name = person.get("name");
String password = person.get("password");
Admin admin = adminMapper.getAdminByName(name);
String adminPassword = admin.getPassword();
if (admin != null){
if (password.equals(adminPassword)){
res.putData("name",admin.getName());
res.putData("id",admin.getId());
}else{
res.setStatus(500);
res.setMessage("密码错误!");
}
}else{
res.setStatus(500);
res.setMessage("用户不存在!");
}
return ResponseEntity.ok(res);
}