提交 3b241f8d 编写于 作者: E Evan

chore: generate token

上级 e5d4afaa
......@@ -46,8 +46,8 @@
})
.then(resp => {
if (resp.data.code === 200) {
var data = resp.data
_this.$store.commit('login', data.data)
var data = resp.data.data
_this.$store.commit('login', data)
var path = _this.$route.query.redirect
_this.$router.replace({path: path === '/' || path === undefined ? '/home' : path})
}
......
......@@ -24,7 +24,8 @@ Vue.use(mavonEditor)
router.beforeEach((to, from, next) => {
if (to.meta.requireAuth) {
if (store.state.token) {
if (store.state.user.token) {
console.log(store.state.user.token)
axios.post('/authentication')
next()
} else {
......@@ -42,10 +43,10 @@ router.beforeEach((to, from, next) => {
// http request 拦截器
axios.interceptors.request.use(
config => {
if (store.state.token) {
console.log(store.state.token)
if (store.state.user.token) {
// 判断是否存在token,如果存在的话,则每个http header都加上token
config.headers.Authorization = `token ${JSON.stringify(store.state.token)}`
// config.headers.Token = `token ${JSON.stringify(store.state.user.token)}`
config.headers.Token = JSON.stringify(store.state.user.token)
}
return config
},
......
......@@ -8,10 +8,10 @@ export default new Vuex.Store({
user: {
name: window.localStorage.getItem('user' || '[]') == null ? '未登录' : JSON.parse(window.localStorage.getItem('user' || '[]')).name,
// userface: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).userface,
username: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).username
username: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).username,
// roles: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).roles
token: window.localStorage.getItem('user' || '[]') == null ? '' : JSON.parse(window.localStorage.getItem('user' || '[]')).token
},
token: window.localStorage.getItem('token'),
routes: []
},
mutations: {
......@@ -19,12 +19,12 @@ export default new Vuex.Store({
state.routes = menus
},
login (state, data) {
// state.token = data
window.localStorage.setItem('token', data)
state.user = data
window.localStorage.setItem('user', JSON.stringify(data))
},
logout (state) {
window.localStorage.removeItem('token')
// state.user = null
window.localStorage.removeItem('user')
state.user = null
state.routes = []
}
},
......
......@@ -117,6 +117,11 @@
<artifactId>fastjson</artifactId>
<version>1.2.41</version>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.8.3</version>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
......
......@@ -8,6 +8,7 @@ import com.gm.wj.pojo.User;
import com.gm.wj.result.Result;
import com.gm.wj.result.ResultFactory;
import com.gm.wj.service.UserService;
import com.gm.wj.util.TokenUtil;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.UsernamePasswordToken;
......@@ -34,12 +35,15 @@ public class LoginController {
Subject subject = SecurityUtils.getSubject();
// subject.getSession().setTimeout(10000);
UsernamePasswordToken token = new UsernamePasswordToken(username, requestUser.getPassword());
UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(username, requestUser.getPassword());
try {
subject.login(token);
subject.login(usernamePasswordToken);
User user = userService.getByUserName(username);
session.setAttribute("user", user);
return ResultFactory.buildSuccessResult(token);
TokenUtil tokenUtil = new TokenUtil();
String token = tokenUtil.getToken(user);
user.setToken(token);
session.setAttribute("token", token);
return ResultFactory.buildSuccessResult(user);
} catch (AuthenticationException e) {
String message = "账号密码错误";
return ResultFactory.buildFailResult(message);
......@@ -87,7 +91,7 @@ public class LoginController {
@ResponseBody
@PostMapping(value = "api/authentication")
public String authentication(@RequestHeader("Authorization") String token){
public String authentication(@RequestHeader("Token") String token){
// System.out.println(user.getUsername());
return "authentication success";
}
......
......@@ -17,6 +17,7 @@ public class User {
String password;
String name;
String salt;
String token;
public int getId() {
return id;
......@@ -57,5 +58,13 @@ public class User {
public void setSalt(String salt) {
this.salt = salt;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
package com.gm.wj.util;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;
import com.gm.wj.pojo.User;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
public class TokenUtil {
public String getToken(User user) {
String token = JWT.create().withAudience(Integer.toString(user.getId()))
.sign(Algorithm.HMAC256(user.getPassword()));
return token;
}
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface PassToken {
boolean required() default true;
}
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface UserLoginToken {
boolean required() default true;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册