Former-commit-id: d7ceefab0e972c63faf96ee116d235a8626a29c1
TangShanKaiPing
wanggang 6 years ago
parent 59e7bba3cd
commit 52d8c7b753

@ -76,26 +76,6 @@
"HashPattern": null, "HashPattern": null,
"MaxRps": 0 "MaxRps": 0
}, },
{
"Servers": [
{
"Url": "ws://localhost:8011/",
"Weight": 0,
"MaxRps": 0
}
],
"PluginConfig": {
"Requesting": [],
"AgentRequesting": [],
"HeaderWriting": [],
"Requested": [],
"ResponseError": []
},
"Url": "ws://localhost/IoTCenter.*",
"Remark": null,
"HashPattern": null,
"MaxRps": 0
},
{ {
"Servers": [ "Servers": [
{ {

@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using System; using System;
using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Net.Mime; using System.Net.Mime;
using System.Security.Claims; using System.Security.Claims;
@ -105,7 +106,7 @@ namespace UserCenter.Controllers
} }
[HttpPost] [HttpPost]
public ActionResult RefreshToken([FromBody]string refreshToken) public ActionResult RefreshToken([FromBody][Required]string refreshToken)
{ {
try try
{ {

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

@ -4,7 +4,7 @@ var hubUrl = "/IoTCenter/hub?group=page";
var connection = new signalR.HubConnectionBuilder().withUrl(hubUrl).build(); var connection = new signalR.HubConnectionBuilder().withUrl(hubUrl).build();
connection.on('Connected', function (id) { connection.on('Connected', function (id) {
connectionId = id; connectionId = id;
console.log(connectionId); console.log('signalR 连接Id:'+connectionId);
}); });
connection.on("ServerToClient", function (method, json, to, from) { connection.on("ServerToClient", function (method, json, to, from) {
console.log(method + ':' + json); console.log(method + ':' + json);
@ -12,33 +12,14 @@ connection.on("ServerToClient", function (method, json, to, from) {
function connect() { function connect() {
if (connection.state === signalR.HubConnectionState.Disconnected) { if (connection.state === signalR.HubConnectionState.Disconnected) {
connection.start().then(function () { connection.start().then(function () {
console.log('客户端与服务器连接成功!'); console.log('signalR 连接成功');
}).catch(function (err) { }).catch(function (err) {
console.log(err); console.log(err);
setTimeout(connect, 15 * 1000); setTimeout(connect, 15 * 1000);
}); });
} }
} }
///
//var request = function (url, data, success, method) {
// this.url = url;
// this.data = data;
// this.method = method || 'get';
// this.success = success;
// if (this.method == 'get') {
// axios.get(url, data)
// }
// else {
// }
// request.then(function (response) {
// this.success(response);
// }).catch(function (error) {
// this.catch(error);
// }).finally(function () {
// this.finally();
// });
//}
var token = localStorage.getItem('accessToken'); var token = localStorage.getItem('accessToken');
var refreshToken = localStorage.getItem('refreshToken'); var refreshToken = localStorage.getItem('refreshToken');
@ -49,7 +30,7 @@ axios.interceptors.request.use(
config.withCredentials = true; config.withCredentials = true;
config.headers['x-requested-with'] = 'XMLHttpRequest'; config.headers['x-requested-with'] = 'XMLHttpRequest';
config.headers['Authorization'] = 'Bearer ' + token; config.headers['Authorization'] = 'Bearer ' + token;
console.log(config.headers['Authorization']); console.log('url:'+config.url + 'auth token:' + config.headers['Authorization']);
} }
} }
return config; return config;
@ -65,25 +46,25 @@ axios.interceptors.response.use(function (response) {
console.log(response); console.log(response);
return response; return response;
}, function (error) { }, function (error) {
console.log('axios.interceptors.response.error:'); console.log('拦截到返回错误:');
console.log(error.response); console.log(error.response);
if (error.response.status === 401) { if (error.response.status === 401 && error.config.url.indexOf('refreshToken')===-1) {
var url = '/UserCenter/api/v1/token/refreshToken'; var url = '/UserCenter/api/v1/token/refreshToken';
var data = refreshToken:refreshToken}; var data = '"'+refreshToken+'"';
axios.post(url, data) axios.post(url, data, { headers: { 'Content-Type': 'application/json;charset=UTF-8' } })
.then(function (response) { .then(function (response) {
token = response.data.accessToken; token = response.data.accessToken;
localStorage.setItem("accessToken", token); localStorage.setItem("accessToken", token);
refreshToken = response.data.refreshToken; refreshToken = response.data.refreshToken;
localStorage.setItem("refreshToken", refreshToken); localStorage.setItem("refreshToken", refreshToken);
config.headers['Authorization'] = 'Bearer ' + token; config.headers['Authorization'] = 'Bearer ' + token;
console.log('after refresh token,send request again'); console.log('刷新token后重发api请求');
axios.request(error.config); axios.request(error.config);
}) })
.catch(function (error) { .catch(function (error) {
if (error.response.status === 401) { if (error.response.status === 401) {
console.log('refreshToken invalid'); console.log('refreshToken 已过期');
router.push('/login') router.push('/login');
} }
}); });
} }

@ -1,10 +1,8 @@
<div class="weui-tab" id="tab"> <div class="weui-tab" id="tab">
<div class="weui-tab__panel"> <div class="weui-tab__panel">
<div class="weui-tab__content page_feedback"> <div class="weui-tab__content">
<mt-header title="消息"></mt-header>
</div> </div>
<div class="weui-tab__content"> <div class="weui-tab__content">
<mt-header title="应用"></mt-header>
<div class="weui-grids"> <div class="weui-grids">
<router-link to="/UserCenter/home" class="weui-grid"> <router-link to="/UserCenter/home" class="weui-grid">
<div class="weui-grid__icon"> <div class="weui-grid__icon">
@ -21,7 +19,18 @@
</div> </div>
</div> </div>
<div class="weui-tab__content"> <div class="weui-tab__content">
<mt-header title="我的"></mt-header> <div class="weui-cells" v-if="model">
<div class="weui-cell">
<div class="weui-cell__hd" style="position: relative;margin-right: 10px;">
<img :src="model.avatar?model.avatar:'/images/empty.png'" style="width: 50px;display: block">
</div>
<div class="weui-cell__bd">
<p>{{model.nickName}}</p>
<p style="font-size: 13px;color: #888888;">{{model.userName}}</p>
</div>
</div>
</div>
<div class="weui-btn-area"> <a href="javascript:" class="weui-btn weui-btn_primary" v-on:click="logout">退出</a> </div>
</div> </div>
</div> </div>
<div class="weui-tabbar"> <div class="weui-tabbar">

@ -11,15 +11,23 @@
mounted: function () { mounted: function () {
console.log('mounted:home'); console.log('mounted:home');
weui.tab('#tab', { defaultIndex: 1 }); weui.tab('#tab', { defaultIndex: 1 });
var url = '/UserCenter/api/v1/Token/GetUserInfo'; var url = '/UserCenter/api/v1/token/getUserInfo';
var component = this;
axios.get(url) axios.get(url)
.then(function (response) { .then(function (response) {
component.model = response.data;
}) })
.catch(function (error) { .catch(function (error) {
}) })
}, },
methods: { methods: {
logout: function () {
token = null;
refreshToken = null;
localStorage.removeItem('accessToken');
localStorage.removeItem('refreshToken');
router.push('/login');
}
} }
}) })
}); });

Loading…
Cancel
Save