通过用户中心来登录
This commit is contained in:
parent
6a6c5c53fb
commit
f1063be9ad
|
|
@ -1,4 +1,5 @@
|
|||
import request from '@/utils/request2';
|
||||
import request from '@/utils/user_center_request';
|
||||
import request2 from '@/utils/request2';
|
||||
import md5 from 'js-md5';
|
||||
import {UserUISettings} from '@/types/user';
|
||||
|
||||
|
|
@ -141,7 +142,7 @@ export const GetUserStatisticService = (Data) => {
|
|||
for (let key in Data) {
|
||||
params.append(key, Data[key])
|
||||
}
|
||||
return request.post('/user/statistic', params,{
|
||||
return request2.post('/user/statistic', params,{
|
||||
headers: {
|
||||
'token': Data.token,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,3 +99,19 @@ export interface UserUISettings {
|
|||
session_id: number; // 会话ID
|
||||
};
|
||||
}
|
||||
|
||||
// {
|
||||
// "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDgwODg2MDIsImlkIjoxLCJ0eXBlIjoiYWNjZXNzIiwidXNlcm5hbWUiOiJsaWp1biJ9.HJDV_GLkHCEh77GU1tEExmq1RBVv_mYwfQAUEdIFoKw",
|
||||
// "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDg2ODk4MDIsImlkIjoxLCJ0eXBlIjoicmVmcmVzaCJ9.bDO7a7KLNmI9-EVkVmcEebRVD0-5p-Uq7sThRd-NFqA",
|
||||
// "user_id": 1,
|
||||
// "username": "lijun",
|
||||
// "email": "lijun@ljsea.top"
|
||||
// },
|
||||
|
||||
export interface UserToken {
|
||||
access_token: string; // 访问令牌
|
||||
refresh_token: string; // 刷新令牌
|
||||
user_id: number; // 用户ID
|
||||
username: string; // 用户名
|
||||
email: string; // 用户邮箱
|
||||
}
|
||||
|
|
@ -22,11 +22,6 @@ request.interceptors.response.use(
|
|||
router.push("/login")
|
||||
return
|
||||
}
|
||||
if(result.data.code == 7){
|
||||
//alert("该用户已存在,请重新输入!");
|
||||
ElMessage.error('该用户已存在,请重新输入!');
|
||||
return null
|
||||
}
|
||||
|
||||
if(result.data.code == 1){
|
||||
//alert("请求失败,请稍后重试!");
|
||||
|
|
|
|||
|
|
@ -0,0 +1,74 @@
|
|||
// request.ts
|
||||
import { ElMessage } from 'element-plus'
|
||||
import router from '@/router/index.js'
|
||||
|
||||
const baseURL = "https://uc.ljsea.top/"
|
||||
|
||||
// 统一错误处理
|
||||
const errorHandler = (msg: string = '请求失败,请稍后重试!') => {
|
||||
ElMessage.error(msg)
|
||||
return Promise.reject(new Error(msg))
|
||||
}
|
||||
|
||||
// 核心请求方法
|
||||
const fetchRequest = async (url: string, config?: RequestInit) => {
|
||||
try {
|
||||
const fullUrl = new URL(url, baseURL).toString()
|
||||
const response = await fetch(fullUrl, {
|
||||
...config,
|
||||
//credentials: 'include', // 携带 Cookie
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
...config?.headers,
|
||||
},
|
||||
})
|
||||
|
||||
// HTTP 状态码处理
|
||||
if (!response.ok) {
|
||||
router.push("/login")
|
||||
return errorHandler(`HTTP 错误 ${response.status}`)
|
||||
}
|
||||
|
||||
// 业务数据处理
|
||||
const result = await response.json()
|
||||
|
||||
if (result.message === "NOT_LOGIN" || [2, 3, 4].includes(result.code)) {
|
||||
ElMessage.error('登录失效,请重新登录!')
|
||||
localStorage.removeItem("token")
|
||||
router.push("/login")
|
||||
return Promise.reject(result)
|
||||
}
|
||||
|
||||
if (result.code === 1) {
|
||||
return errorHandler(result.message || '请求失败,请稍后重试!')
|
||||
}
|
||||
|
||||
return result.data || result
|
||||
|
||||
} catch (error) {
|
||||
return errorHandler(error instanceof Error ? error.message : '网络连接异常')
|
||||
}
|
||||
}
|
||||
|
||||
// 封装不同请求方法
|
||||
export default {
|
||||
get: (url: string, config?: RequestInit) =>
|
||||
fetchRequest(url, { ...config, method: 'GET' }),
|
||||
|
||||
post: (url: string, data?: any, config?: RequestInit) =>
|
||||
fetchRequest(url, {
|
||||
...config,
|
||||
method: 'POST',
|
||||
body: JSON.stringify(data),
|
||||
}),
|
||||
|
||||
put: (url: string, data?: any, config?: RequestInit) =>
|
||||
fetchRequest(url, {
|
||||
...config,
|
||||
method: 'PUT',
|
||||
body: JSON.stringify(data),
|
||||
}),
|
||||
|
||||
delete: (url: string, config?: RequestInit) =>
|
||||
fetchRequest(url, { ...config, method: 'DELETE' }),
|
||||
}
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
import axios from "axios";
|
||||
import router from "@/router/index.js";
|
||||
import Cookies from 'js-cookie';
|
||||
import { ElMessage } from 'element-plus';
|
||||
//const baseURL = "https://gep.ljsea.top/";
|
||||
const baseURL = "https://uc.ljsea.top/";
|
||||
//const baseURL= "http://localhost:8084";
|
||||
//const baseURL="https://pm.ljsea.top";
|
||||
//const baseURL = "https://gep.ljsea.xyz/";
|
||||
const request = axios.create({
|
||||
baseURL: baseURL,
|
||||
});
|
||||
|
||||
request.interceptors.response.use(
|
||||
result => {
|
||||
const cookie= Cookies.get("user_token");
|
||||
console.log("cookie:", cookie);
|
||||
|
||||
//请求地址
|
||||
if(result.config.url == "/user/refresh_token"){
|
||||
return result;
|
||||
}
|
||||
|
||||
if(result.data.message==="NOT_LOGIN"|| [2, 3, 4].includes(result.data.code) || result.status !== 200 ){
|
||||
//alert("登录失效,请重新登录!")
|
||||
refreshToken();
|
||||
//重新请求
|
||||
//return request(result.config);
|
||||
}
|
||||
if(result.data.code == 7){
|
||||
//alert("该用户已存在,请重新输入!");
|
||||
ElMessage.error('该用户已存在,请重新输入!');
|
||||
return null
|
||||
}
|
||||
|
||||
if(result.data.code == 1){
|
||||
//alert("请求失败,请稍后重试!");
|
||||
ElMessage.error('请求失败,请稍后重试!');
|
||||
}else{
|
||||
return result.data
|
||||
}
|
||||
},
|
||||
error => {
|
||||
//alert("请求失败,请稍后重试!");
|
||||
ElMessage.error('请求失败,请稍后重试!');
|
||||
return Promise.reject(error);
|
||||
}
|
||||
)
|
||||
|
||||
const refreshToken = async () => {
|
||||
//读取cookie的信息
|
||||
const user_token = Cookies.get("user_token");
|
||||
if(user_token == null){
|
||||
router.push("/login");
|
||||
}
|
||||
let userTokenInfo = JSON.parse(user_token);
|
||||
let req_data = await request.post('/user/refresh_token', {
|
||||
"refresh_token": userTokenInfo.refresh_token
|
||||
}, {
|
||||
headers: {
|
||||
'token': userTokenInfo.token,
|
||||
'Content-Type': 'application/json' // 设置请求头为 JSON 格式
|
||||
}
|
||||
});
|
||||
if(req_data.status == 401 || req_data.status == 403){
|
||||
//alert("登录失效,请重新登录!");
|
||||
ElMessage.error('登录失效,请重新登录!');
|
||||
localStorage.removeItem("token");
|
||||
router.push("/login")
|
||||
}else{
|
||||
let newAccessToken = req_data.data;
|
||||
localStorage.setItem("token", newAccessToken);
|
||||
}
|
||||
}
|
||||
|
||||
export default request;
|
||||
|
|
@ -79,7 +79,9 @@ import { useRouter } from "vue-router";
|
|||
import { ElMessage } from "element-plus";
|
||||
import { loginService } from "@/api/user";
|
||||
import { GetUserInfoService } from "@/api/user";
|
||||
import { UserToken } from "@/types/user";
|
||||
import { usePermissStore } from "@/store/permiss";
|
||||
import Cookies from 'js-cookie';
|
||||
import {getThirdPartyUUID,getThirdPartyLoginStatus,getGithubLoginUrl,getQQLoginUrl,getThirdPartyLoginUrl} from "@/api/user";
|
||||
// 从本地存储获取登录参数
|
||||
const lgStr = localStorage.getItem("login-param");
|
||||
|
|
@ -236,20 +238,15 @@ const thirdLogin = async (type) => {
|
|||
if(status["status"] === 0) {
|
||||
//登录成功
|
||||
clearInterval(timer);
|
||||
let userInfo = status["user_info"];
|
||||
let token = userInfo["token"];
|
||||
if (!token) {
|
||||
ElMessage.error("获取登录状态失败!请稍后再试");
|
||||
return;
|
||||
}
|
||||
|
||||
globalData["token"] = token;
|
||||
localStorage.setItem("token", token);
|
||||
localStorage.setItem("userId", userInfo["id"]);
|
||||
localStorage.setItem("username", status["username"]);
|
||||
let userInfo:UserToken = status["user_info"];
|
||||
globalData["token"] = userInfo.access_token;
|
||||
localStorage.setItem("token", userInfo.access_token);
|
||||
localStorage.setItem("refresh_token", userInfo.refresh_token);
|
||||
localStorage.setItem("userId", userInfo.user_id.toString());
|
||||
localStorage.setItem("username", userInfo.username);
|
||||
let now = new Date();
|
||||
localStorage.setItem("end_time", (now.setDate(now.getHours() + 12)).toString()); //过期时间
|
||||
await getMyUserInfo(userInfo["id"]);
|
||||
await getMyUserInfo(userInfo.user_id);
|
||||
return;
|
||||
}
|
||||
}, 2000);
|
||||
|
|
@ -282,13 +279,15 @@ const onLogin = async () => {
|
|||
ElMessage.error("登录失败!用户名或密码错误");
|
||||
return;
|
||||
}
|
||||
let userTokenInfo: UserToken = result["data"];
|
||||
globalData["token"] = result.data;
|
||||
localStorage.setItem("token", result.data.token);
|
||||
localStorage.setItem("userId", result.data.id);
|
||||
localStorage.setItem("username", result.data.username);
|
||||
localStorage.setItem("token", userTokenInfo.access_token);
|
||||
localStorage.setItem("refresh_token", userTokenInfo.refresh_token);
|
||||
localStorage.setItem("userId", userTokenInfo.user_id.toString());
|
||||
localStorage.setItem("username", userTokenInfo.username);
|
||||
let now = new Date();
|
||||
localStorage.setItem("end_time", (now.setDate(now.getHours() + 12)).toString()); //过期时间
|
||||
await getMyUserInfo(result.data.id);
|
||||
localStorage.setItem("end_time", (now.setDate(now.getHours())).toString()); //过期时间
|
||||
await getMyUserInfo(userTokenInfo.user_id);
|
||||
//token.value= result.data;
|
||||
|
||||
};
|
||||
|
|
@ -301,12 +300,15 @@ const getMyUserInfo = async (id) => {
|
|||
id: id,
|
||||
};
|
||||
result = await GetUserInfoService(tokenData);
|
||||
const cookie= Cookies.get("user_token");
|
||||
console.log("cookie:", cookie);
|
||||
if (result["code"] === 0) {
|
||||
//console.log("token data:",this.tokenData)
|
||||
// localStorage.setItem("video_func", result.data.VideoFunc);
|
||||
// localStorage.setItem("device_func", result.data.DeviceFunc);
|
||||
// localStorage.setItem("cid_func", result.data.CIDFunc);
|
||||
// localStorage.setItem("role", result.data.Role);
|
||||
|
||||
|
||||
ElMessage.success("登录成功");
|
||||
localStorage.setItem("ms_username", result["data"]["Name"]);
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, reactive,inject } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import { UserToken } from "@/types/user";
|
||||
import { ElMessage } from 'element-plus';
|
||||
import { registerService,getRigisterEmailCode } from "@/api/user";
|
||||
import {GetUserInfoService} from "@/api/user";
|
||||
|
|
@ -156,10 +157,12 @@ const onRegister = async () => {
|
|||
|
||||
let result = await registerService(registerData);
|
||||
if (result !== null) {
|
||||
let userTokenInfo: UserToken = result["data"];
|
||||
globalData["token"] = result.data;
|
||||
localStorage.setItem("token", result.data.token);
|
||||
localStorage.setItem("userId", result.data.id);
|
||||
localStorage.setItem("username", result.data.username);
|
||||
localStorage.setItem("token", userTokenInfo.access_token);
|
||||
localStorage.setItem("refresh_token", userTokenInfo.refresh_token);
|
||||
localStorage.setItem("userId", userTokenInfo.user_id.toString());
|
||||
localStorage.setItem("username", userTokenInfo.username);
|
||||
let now = new Date();
|
||||
localStorage.setItem("end_time", (now.setDate(now.getHours() + 12)).toString()); //过期时间
|
||||
//token.value= result.data;
|
||||
|
|
|
|||
Loading…
Reference in New Issue