🎨 优化token认证

master
linhaojun 3 years ago
parent bef4423ffa
commit 140fc5b640

@ -0,0 +1,14 @@
package com.aurora.constant;
public class AuthConstant {
public static final String TOKEN_HEADER = "Authorization";
public static final String TOKEN_PREFIX = "Bearer ";
public final static Integer TWENTY_MINUTES = 20;
public final static String SECRET = "huaweimian";
public final static Integer EXPIRE_TIME = 7 * 24 * 60 * 60;
}

@ -87,11 +87,6 @@ public class CommonConstant {
*/
public static final Integer DEFAULT_ABOUT_ID = 1;
/**
* 20
*/
public final static Integer TWENTY_MINUTES = 20;
/**
*
*/

@ -16,21 +16,16 @@ import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.Base64;
import java.util.Optional;
import java.util.UUID;
import static com.aurora.constant.CommonConstant.TWENTY_MINUTES;
import static com.aurora.constant.AuthConstant.*;
import static com.aurora.constant.RedisPrefixConstant.LOGIN_USER;
@Service
public class TokenServiceImpl implements TokenService {
private final static String header = "token";
private final static String secret = "huaweimian";
private final static Integer expireTime = 7 * 24 * 60 * 60;
@Autowired
private RedisService redisService;
@ -53,9 +48,9 @@ public class TokenServiceImpl implements TokenService {
@Override
public void refreshToken(UserDetailsDTO userDetailsDTO) {
LocalDateTime currentTime = LocalDateTime.now();
userDetailsDTO.setExpireTime(currentTime.plusSeconds(expireTime));
userDetailsDTO.setExpireTime(currentTime.plusSeconds(EXPIRE_TIME));
String userId = userDetailsDTO.getId().toString();
redisService.hSet(LOGIN_USER, userId, userDetailsDTO, expireTime);
redisService.hSet(LOGIN_USER, userId, userDetailsDTO, EXPIRE_TIME);
}
@Override
@ -75,7 +70,7 @@ public class TokenServiceImpl implements TokenService {
@Override
public UserDetailsDTO getUserDetailDTO(HttpServletRequest request) {
String token = request.getHeader(TokenServiceImpl.header);
String token = request.getHeader(TOKEN_HEADER).replaceFirst(TOKEN_PREFIX, "");
if (StringUtils.hasText(token) && !token.equals("null")) {
Claims claims = parseToken(token);
String userId = claims.getSubject();
@ -94,7 +89,7 @@ public class TokenServiceImpl implements TokenService {
}
public SecretKey generalKey() {
byte[] encodedKey = Base64.getDecoder().decode(secret);
byte[] encodedKey = Base64.getDecoder().decode(SECRET);
return new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
}

@ -67,7 +67,7 @@ router.afterEach(() => {
})
axios.interceptors.request.use((config) => {
config.headers.token = sessionStorage.getItem('token') === null ? '' : sessionStorage.getItem('token')
config.headers['Authorization'] = 'Bearer ' + sessionStorage.getItem('token')
return config
})

@ -128,7 +128,7 @@ export default {
current: 1,
size: 8,
count: 0,
headers: { token: sessionStorage.getItem('token') }
headers: { Authorization: 'Bearer ' + sessionStorage.getItem('token') }
}
},
methods: {
@ -300,4 +300,4 @@ export default {
top: 0.5rem;
right: 0.8rem;
}
</style>
</style>

@ -213,7 +213,7 @@ export default {
current: 1,
size: 18,
count: 0,
headers: { token: sessionStorage.getItem('token') }
headers: { Authorization: 'Bearer ' + sessionStorage.getItem('token') }
}
},
methods: {

@ -204,7 +204,7 @@ export default {
type: 1,
status: 1
},
headers: { token: sessionStorage.getItem('token') }
headers: { Authorization: 'Bearer ' + sessionStorage.getItem('token') }
}
},
methods: {
@ -483,4 +483,4 @@ export default {
height: 260px;
overflow-y: auto;
}
</style>
</style>

@ -73,7 +73,7 @@ export default {
confirmPassword: ''
},
activeName: 'info',
headers: { token: sessionStorage.getItem('token') }
headers: { Authorization: 'Bearer ' + sessionStorage.getItem('token') }
}
},
methods: {

@ -216,7 +216,7 @@ export default {
return {
websiteConfigForm: {},
activeName: 'info',
headers: { token: sessionStorage.getItem('token') }
headers: { Authorization: 'Bearer ' + sessionStorage.getItem('token') }
}
},
methods: {
@ -296,4 +296,4 @@ export default {
height: 120px;
display: block;
}
</style>
</style>

@ -2,32 +2,29 @@ import axios from 'axios'
import { app } from '@/main'
axios.interceptors.request.use((config: any) => {
config.headers.token = sessionStorage.getItem('token')
config.headers['Authorization'] = 'Bearer ' + sessionStorage.getItem('token')
return config
})
axios.interceptors.response.use(
(response) => {
switch (response.data.code) {
case 50000:
app.config.globalProperties.$notify({
title: 'Error',
message: '系统异常,请联系管理员',
type: 'error'
})
break
case 40001:
app.config.globalProperties.$notify({
title: 'Error',
message: '用户未登录',
type: 'error'
})
break
}
return response
},
(error) => {}
)
axios.interceptors.response.use((response) => {
switch (response.data.code) {
case 50000:
app.config.globalProperties.$notify({
title: 'Error',
message: '系统异常,请联系管理员',
type: 'error'
})
break
case 40001:
app.config.globalProperties.$notify({
title: 'Error',
message: '用户未登录',
type: 'error'
})
break
}
return response
})
export default {
getTopAndFeaturedArticles: () => {
return axios.get('/api/articles/topAndFeatured')
@ -135,7 +132,7 @@ export default {
updatePassword: (params: any) => {
return axios.put('/api/users/password', params)
},
accessArticle:(params:any)=>{
return axios.post('/api/articles/access',params)
accessArticle: (params: any) => {
return axios.post('/api/articles/access', params)
}
}

@ -242,7 +242,7 @@ export default defineComponent({
return {
method: 'POST',
headers: {
token: userStore.token
Authorization: 'Bearer ' + userStore.token
}
}
})

Loading…
Cancel
Save