Browse Source

修复刷新token 的 bug

master
xsx 3 years ago
parent
commit
84f0dd4714
  1. 1
      im-client/src/main/java/com/bx/imclient/task/PullSendResultPrivateMessageTask.java
  2. 4
      im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java
  3. 2
      im-ui/src/view/Login.vue
  4. 8
      im-uniapp/common/request.js

1
im-client/src/main/java/com/bx/imclient/task/PullSendResultPrivateMessageTask.java

@ -31,7 +31,6 @@ public class PullSendResultPrivateMessageTask extends AbstractPullMessageTask{
public void pullMessage() { public void pullMessage() {
String key = IMRedisKey.IM_RESULT_PRIVATE_QUEUE; String key = IMRedisKey.IM_RESULT_PRIVATE_QUEUE;
JSONObject jsonObject = (JSONObject)redisTemplate.opsForList().leftPop(key,10, TimeUnit.SECONDS); JSONObject jsonObject = (JSONObject)redisTemplate.opsForList().leftPop(key,10, TimeUnit.SECONDS);
if(jsonObject != null) { if(jsonObject != null) {
IMSendResult result = jsonObject.toJavaObject(IMSendResult.class); IMSendResult result = jsonObject.toJavaObject(IMSendResult.class);
listenerMulticaster.multicast(IMListenerType.PRIVATE_MESSAGE, result); listenerMulticaster.multicast(IMListenerType.PRIVATE_MESSAGE, result);

4
im-platform/src/main/java/com/bx/implatform/service/impl/UserServiceImpl.java

@ -79,7 +79,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
session.setTerminal(dto.getTerminal()); session.setTerminal(dto.getTerminal());
String strJson = JSON.toJSONString(session); String strJson = JSON.toJSONString(session);
String accessToken = JwtUtil.sign(user.getId(),strJson,jwtProperties.getAccessTokenExpireIn(),jwtProperties.getAccessTokenSecret()); String accessToken = JwtUtil.sign(user.getId(),strJson,jwtProperties.getAccessTokenExpireIn(),jwtProperties.getAccessTokenSecret());
String refreshToken = JwtUtil.sign(user.getId(),strJson,jwtProperties.getAccessTokenExpireIn(),jwtProperties.getAccessTokenSecret()); String refreshToken = JwtUtil.sign(user.getId(),strJson,jwtProperties.getRefreshTokenExpireIn(),jwtProperties.getRefreshTokenSecret());
LoginVO vo = new LoginVO(); LoginVO vo = new LoginVO();
vo.setAccessToken(accessToken); vo.setAccessToken(accessToken);
vo.setAccessTokenExpiresIn(jwtProperties.getAccessTokenExpireIn()); vo.setAccessTokenExpiresIn(jwtProperties.getAccessTokenExpireIn());
@ -97,7 +97,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
@Override @Override
public LoginVO refreshToken(String refreshToken) { public LoginVO refreshToken(String refreshToken) {
//验证 token //验证 token
if(JwtUtil.checkSign(refreshToken, jwtProperties.getRefreshTokenSecret())){ if(!JwtUtil.checkSign(refreshToken, jwtProperties.getRefreshTokenSecret())){
throw new GlobalException("refreshToken无效或已过期"); throw new GlobalException("refreshToken无效或已过期");
} }
String strJson = JwtUtil.getInfo(refreshToken); String strJson = JwtUtil.getInfo(refreshToken);

2
im-ui/src/view/Login.vue

@ -2,7 +2,7 @@
<div class="login-view" > <div class="login-view" >
<el-form :model="loginForm" status-icon :rules="rules" ref="loginForm" label-width="60px" class="web-ruleForm" @keyup.enter.native="submitForm('loginForm')"> <el-form :model="loginForm" status-icon :rules="rules" ref="loginForm" label-width="60px" class="web-ruleForm" @keyup.enter.native="submitForm('loginForm')">
<div class="login-brand">欢迎登陆</div> <div class="login-brand">欢迎登陆</div>
<el-form-item label="终端" prop="userName"> <el-form-item label="终端" prop="userName" v-show="false">
<el-input type="terminal" v-model="loginForm.terminal" autocomplete="off"></el-input> <el-input type="terminal" v-model="loginForm.terminal" autocomplete="off"></el-input>
</el-form-item> </el-form-item>

8
im-uniapp/common/request.js

@ -21,7 +21,7 @@ const request = (options) => {
}); });
} else if (res.data.code == 401) { } else if (res.data.code == 401) {
console.log("token失效,尝试重新获取") console.log("token失效,尝试重新获取")
const refreshToken = sessionStorage.getItem("refreshToken"); const refreshToken = uni.getStorageSync("refreshToken");
if (!refreshToken) { if (!refreshToken) {
uni.navigateTo({ uni.navigateTo({
url: '/pages/login/login' url: '/pages/login/login'
@ -35,6 +35,12 @@ const request = (options) => {
refreshToken: refreshToken refreshToken: refreshToken
} }
}) })
// 换取token失败,跳转至登录界面
if(data.code != 200){
uni.navigateTo({
url: '/pages/login/login'
});
}
// 保存token // 保存token
uni.setStorageSync("accessToken", data.accessToken); uni.setStorageSync("accessToken", data.accessToken);
uni.setStorageSync("refreshToken", data.refreshToken); uni.setStorageSync("refreshToken", data.refreshToken);

Loading…
Cancel
Save