🎨 update login logic
This commit is contained in:
@@ -6,7 +6,6 @@ import {service} from "@/utils/alova/service.ts";
|
|||||||
*/
|
*/
|
||||||
export const commentSubmitApi = (params: any) => {
|
export const commentSubmitApi = (params: any) => {
|
||||||
return service.Post('/api/auth/comment/submit', {
|
return service.Post('/api/auth/comment/submit', {
|
||||||
user_id: params.user_id,
|
|
||||||
content: params.content,
|
content: params.content,
|
||||||
images: params.images,
|
images: params.images,
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
@@ -28,7 +27,6 @@ export const commentSubmitApi = (params: any) => {
|
|||||||
*/
|
*/
|
||||||
export const replySubmitApi = (params: any) => {
|
export const replySubmitApi = (params: any) => {
|
||||||
return service.Post('/api/auth/reply/submit', {
|
return service.Post('/api/auth/reply/submit', {
|
||||||
user_id: params.user_id,
|
|
||||||
content: params.content,
|
content: params.content,
|
||||||
images: params.images,
|
images: params.images,
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
@@ -56,7 +54,6 @@ export const commentListApi = (params: any) => {
|
|||||||
page: params.page,
|
page: params.page,
|
||||||
size: params.size,
|
size: params.size,
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
user_id: params.user_id,
|
|
||||||
is_hot: params.is_hot,
|
is_hot: params.is_hot,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -81,7 +78,6 @@ export const replyListApi = (params: any) => {
|
|||||||
size: params.size,
|
size: params.size,
|
||||||
comment_id: params.comment_id,
|
comment_id: params.comment_id,
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
user_id: params.user_id,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
cacheFor: {
|
cacheFor: {
|
||||||
@@ -102,7 +98,6 @@ export const replyListApi = (params: any) => {
|
|||||||
*/
|
*/
|
||||||
export const replyReplySubmitApi = (params: any) => {
|
export const replyReplySubmitApi = (params: any) => {
|
||||||
return service.Post('/api/auth/reply/reply/submit', {
|
return service.Post('/api/auth/reply/reply/submit', {
|
||||||
user_id: params.user_id,
|
|
||||||
content: params.content,
|
content: params.content,
|
||||||
images: params.images,
|
images: params.images,
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
@@ -128,7 +123,6 @@ export const replyReplySubmitApi = (params: any) => {
|
|||||||
*/
|
*/
|
||||||
export const commentLikeApi = (params: any) => {
|
export const commentLikeApi = (params: any) => {
|
||||||
return service.Post('/api/auth/comment/like', {
|
return service.Post('/api/auth/comment/like', {
|
||||||
user_id: params.user_id,
|
|
||||||
comment_id: params.comment_id,
|
comment_id: params.comment_id,
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
},
|
},
|
||||||
@@ -146,7 +140,7 @@ export const commentLikeApi = (params: any) => {
|
|||||||
*/
|
*/
|
||||||
export const cancelCommentLikeApi = (params: any) => {
|
export const cancelCommentLikeApi = (params: any) => {
|
||||||
return service.Post('/api/auth/comment/cancel_like', {
|
return service.Post('/api/auth/comment/cancel_like', {
|
||||||
user_id: params.user_id,
|
|
||||||
comment_id: params.comment_id,
|
comment_id: params.comment_id,
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
},
|
},
|
||||||
|
@@ -21,12 +21,9 @@ export const getUserInfo = () => {
|
|||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* 刷新token
|
* 刷新token
|
||||||
* @param refreshToken
|
|
||||||
*/
|
*/
|
||||||
export const refreshToken = (refreshToken: string) => {
|
export const refreshToken = () => {
|
||||||
return service.Post('/api/token/refresh', {
|
return service.Post('/api/token/refresh', {}, {
|
||||||
refresh_token: refreshToken
|
|
||||||
}, {
|
|
||||||
meta: {
|
meta: {
|
||||||
authRole: 'refreshToken',
|
authRole: 'refreshToken',
|
||||||
ignoreToken: false
|
ignoreToken: false
|
||||||
@@ -126,12 +123,10 @@ export const getUserPermissions = (user_id: string) => {
|
|||||||
/**
|
/**
|
||||||
* 获取用户设备信息
|
* 获取用户设备信息
|
||||||
*/
|
*/
|
||||||
export const getUserDevice = (userId: string) => {
|
export const getUserDevice = () => {
|
||||||
return service.Get('/api/user/get_device',
|
return service.Get('/api/user/get_device',
|
||||||
{
|
{
|
||||||
params: {
|
params: {},
|
||||||
user_id: userId,
|
|
||||||
},
|
|
||||||
meta: {
|
meta: {
|
||||||
ignoreToken: true,
|
ignoreToken: true,
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
<div class="comment">
|
<div class="comment">
|
||||||
<AFlex :vertical="false">
|
<AFlex :vertical="false">
|
||||||
<AFlex :vertical="true">
|
<AFlex :vertical="true">
|
||||||
<AAvatar :size="50" class="comment-avatar" shape="circle" :src="user.user.userInfo.avatar"/>
|
<AAvatar :size="50" class="comment-avatar" shape="circle" :src="user.user.avatar"/>
|
||||||
</AFlex>
|
</AFlex>
|
||||||
<AFlex :vertical="true" class="comment-content">
|
<AFlex :vertical="true" class="comment-content">
|
||||||
<ATextarea :rows="4" class="comment-text" @focus="onFocusHandler"
|
<ATextarea :rows="4" class="comment-text" @focus="onFocusHandler"
|
||||||
@@ -163,7 +163,6 @@ async function commentSubmit(point: any) {
|
|||||||
return `<img width="30px" height="30px" loading="lazy" src="/emoji/qq/gif/${p1}" alt="emoji ${p1}" />`;
|
return `<img width="30px" height="30px" loading="lazy" src="/emoji/qq/gif/${p1}" alt="emoji ${p1}" />`;
|
||||||
});
|
});
|
||||||
const commentParams: object = {
|
const commentParams: object = {
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
content: contentWithEmoji,
|
content: contentWithEmoji,
|
||||||
images: comment.imageList,
|
images: comment.imageList,
|
||||||
@@ -177,8 +176,8 @@ async function commentSubmit(point: any) {
|
|||||||
user_id: user.user.uid,
|
user_id: user.user.uid,
|
||||||
content: result.data.content,
|
content: result.data.content,
|
||||||
images: comment.imageList,
|
images: comment.imageList,
|
||||||
nickname: user.user.userInfo.nickname,
|
nickname: user.user.nickname,
|
||||||
avatar: user.user.userInfo.avatar,
|
avatar: user.user.avatar,
|
||||||
id: result.data.id,
|
id: result.data.id,
|
||||||
created_time: result.data.created_time,
|
created_time: result.data.created_time,
|
||||||
browser: result.data.browser,
|
browser: result.data.browser,
|
||||||
|
@@ -180,7 +180,7 @@ import UserInfoCard from "@/components/CommentReply/src/UserInfoCard/UserInfoCar
|
|||||||
const {t} = useI18n();
|
const {t} = useI18n();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const comment = useStore().comment;
|
const comment = useStore().comment;
|
||||||
const user = useStore().user;
|
|
||||||
|
|
||||||
const topicId = ref<string>("123");
|
const topicId = ref<string>("123");
|
||||||
|
|
||||||
@@ -190,7 +190,6 @@ const topicId = ref<string>("123");
|
|||||||
*/
|
*/
|
||||||
async function getCommentList(page: number = 1, size: number = 5, hot: boolean = true) {
|
async function getCommentList(page: number = 1, size: number = 5, hot: boolean = true) {
|
||||||
const params = {
|
const params = {
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
page: page,
|
page: page,
|
||||||
size: size,
|
size: size,
|
||||||
@@ -247,7 +246,6 @@ async function getReplyList(reply_id: number, page: number = 1, size: number = 5
|
|||||||
page: page,
|
page: page,
|
||||||
size: size,
|
size: size,
|
||||||
comment_id: reply_id,
|
comment_id: reply_id,
|
||||||
user_id: user.user.uid,
|
|
||||||
};
|
};
|
||||||
await comment.getReplyList(params);
|
await comment.getReplyList(params);
|
||||||
}
|
}
|
||||||
@@ -261,7 +259,6 @@ const commentLikeThrottled = useThrottleFn(commentLike, 1000);
|
|||||||
async function commentLike(item: any) {
|
async function commentLike(item: any) {
|
||||||
const params: any = {
|
const params: any = {
|
||||||
comment_id: item.id,
|
comment_id: item.id,
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
};
|
};
|
||||||
const res: boolean = await comment.commentLike(params);
|
const res: boolean = await comment.commentLike(params);
|
||||||
@@ -280,7 +277,6 @@ const cancelCommentLikeThrottled = useThrottleFn(cancelCommentLike, 1000);
|
|||||||
async function cancelCommentLike(item: any) {
|
async function cancelCommentLike(item: any) {
|
||||||
const params: any = {
|
const params: any = {
|
||||||
comment_id: item.id,
|
comment_id: item.id,
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
};
|
};
|
||||||
const res: boolean = await comment.cancelCommentLike(params);
|
const res: boolean = await comment.cancelCommentLike(params);
|
||||||
|
@@ -170,14 +170,12 @@ async function replySubmit(point: any) {
|
|||||||
images: any;
|
images: any;
|
||||||
reply_id: number;
|
reply_id: number;
|
||||||
reply_user: string;
|
reply_user: string;
|
||||||
user_id: any;
|
|
||||||
author: any;
|
author: any;
|
||||||
topic_id: string;
|
topic_id: string;
|
||||||
content: any;
|
content: any;
|
||||||
point: [number, number];
|
point: [number, number];
|
||||||
key: any;
|
key: any;
|
||||||
} = {
|
} = {
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
content: contentWithEmoji,
|
content: contentWithEmoji,
|
||||||
images: comment.imageList,
|
images: comment.imageList,
|
||||||
@@ -203,8 +201,8 @@ async function replySubmit(point: any) {
|
|||||||
likes: result.data.likes,
|
likes: result.data.likes,
|
||||||
reply_count: result.data.reply_count,
|
reply_count: result.data.reply_count,
|
||||||
reply_user: result.data.reply_user,
|
reply_user: result.data.reply_user,
|
||||||
nickname: user.user.userInfo.nickname,
|
nickname: user.user.nickname,
|
||||||
avatar: user.user.userInfo.avatar,
|
avatar: user.user.avatar,
|
||||||
is_liked: false,
|
is_liked: false,
|
||||||
reply_username: props.item.nickname,
|
reply_username: props.item.nickname,
|
||||||
};
|
};
|
||||||
|
@@ -150,7 +150,6 @@ import UserInfoCard from "@/components/CommentReply/src/UserInfoCard/UserInfoCar
|
|||||||
const {t} = useI18n();
|
const {t} = useI18n();
|
||||||
|
|
||||||
const comment = useStore().comment;
|
const comment = useStore().comment;
|
||||||
const user = useStore().user;
|
|
||||||
const topicId = ref<string>("123");
|
const topicId = ref<string>("123");
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
item: {
|
item: {
|
||||||
@@ -198,7 +197,6 @@ const commentLikeThrottled = useThrottleFn(commentLike, 1000);
|
|||||||
async function commentLike(item: any) {
|
async function commentLike(item: any) {
|
||||||
const params: any = {
|
const params: any = {
|
||||||
comment_id: item.id,
|
comment_id: item.id,
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
};
|
};
|
||||||
const res: boolean = await comment.commentLike(params);
|
const res: boolean = await comment.commentLike(params);
|
||||||
@@ -217,7 +215,6 @@ const cancelCommentLikeThrottled = useThrottleFn(cancelCommentLike, 1000);
|
|||||||
async function cancelCommentLike(item: any) {
|
async function cancelCommentLike(item: any) {
|
||||||
const params: any = {
|
const params: any = {
|
||||||
comment_id: item.id,
|
comment_id: item.id,
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
};
|
};
|
||||||
const res: boolean = await comment.cancelCommentLike(params);
|
const res: boolean = await comment.cancelCommentLike(params);
|
||||||
@@ -243,7 +240,6 @@ async function getReplyList(page: number, pageSize: number) {
|
|||||||
page: page,
|
page: page,
|
||||||
size: pageSize,
|
size: pageSize,
|
||||||
comment_id: props.item.id,
|
comment_id: props.item.id,
|
||||||
user_id: user.user.uid,
|
|
||||||
};
|
};
|
||||||
await comment.getReplyList(params);
|
await comment.getReplyList(params);
|
||||||
}
|
}
|
||||||
|
@@ -178,7 +178,6 @@ async function replyReplySubmit(point: any) {
|
|||||||
return `<img width="30px" height="30px" loading="lazy" src="/emoji/qq/gif/${p1}" alt="emoji ${p1}" />`;
|
return `<img width="30px" height="30px" loading="lazy" src="/emoji/qq/gif/${p1}" alt="emoji ${p1}" />`;
|
||||||
});
|
});
|
||||||
const replyParams: ReplyCommentParams = {
|
const replyParams: ReplyCommentParams = {
|
||||||
user_id: user.user.uid,
|
|
||||||
topic_id: topicId.value,
|
topic_id: topicId.value,
|
||||||
content: contentWithEmoji,
|
content: contentWithEmoji,
|
||||||
images: comment.imageList,
|
images: comment.imageList,
|
||||||
@@ -205,8 +204,8 @@ async function replyReplySubmit(point: any) {
|
|||||||
likes: result.data.likes,
|
likes: result.data.likes,
|
||||||
reply_count: result.data.reply_count,
|
reply_count: result.data.reply_count,
|
||||||
reply_user: result.data.reply_user,
|
reply_user: result.data.reply_user,
|
||||||
nickname: user.user.userInfo.nickname,
|
nickname: user.user.nickname,
|
||||||
avatar: user.user.userInfo.avatar,
|
avatar: user.user.avatar,
|
||||||
is_liked: false,
|
is_liked: false,
|
||||||
reply_username: props.item.nickname,
|
reply_username: props.item.nickname,
|
||||||
reply_to: result.data.reply_to,
|
reply_to: result.data.reply_to,
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<AFlex :vertical="false" class="user-info-card-name" style="">
|
<AFlex :vertical="false" class="user-info-card-name" style="">
|
||||||
<AFlex :vertical="true" justify="flex-start">
|
<AFlex :vertical="true" justify="flex-start">
|
||||||
<AAvatar :size="48" :src="users.user.userInfo.avatar" class="user-info-card-avatar"/>
|
<AAvatar :size="48" :src="users.user.avatar" class="user-info-card-avatar"/>
|
||||||
</AFlex>
|
</AFlex>
|
||||||
<AFlex :vertical="true" justify="flex-start" class="user-info-card-content-container">
|
<AFlex :vertical="true" justify="flex-start" class="user-info-card-content-container">
|
||||||
<AFlex :vertical="false" align="center">
|
<AFlex :vertical="false" align="center">
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
|
|
||||||
.user-info-card-name-text {
|
.user-info-card-name-text {
|
||||||
|
color: var(--text-color);
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
@@ -40,6 +40,10 @@ const showContent = computed(() => {
|
|||||||
borderRadius: '8px',
|
borderRadius: '8px',
|
||||||
textAlign: 'start',
|
textAlign: 'start',
|
||||||
transform: `translate(${props.offsetX}px, 0)`,
|
transform: `translate(${props.offsetX}px, 0)`,
|
||||||
|
backgroundColor: 'var(--background-color)',
|
||||||
|
color: 'var(--text-color)',
|
||||||
|
border: '1px solid var(--text-color)',
|
||||||
|
boxShadow: '0 2px 8px rgba(0, 0, 0, 0.15)',
|
||||||
...tooltipStyle
|
...tooltipStyle
|
||||||
}"
|
}"
|
||||||
:transition-duration="200"
|
:transition-duration="200"
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
</ADropdown>
|
</ADropdown>
|
||||||
</AFlex>
|
</AFlex>
|
||||||
<AFlex :vertical="false" align="center" justify="flex-start" class="header-user-container">
|
<AFlex :vertical="false" align="center" justify="flex-start" class="header-user-container">
|
||||||
<AAvatar :size="35" class="header-user-avatar" :src="user.user.userInfo.avatar"/>
|
<AAvatar :size="35" class="header-user-avatar" :src="user.user.avatar"/>
|
||||||
<AButton type="text" size="small" class="header-user-btn">landaiqing</AButton>
|
<AButton type="text" size="small" class="header-user-btn">landaiqing</AButton>
|
||||||
</AFlex>
|
</AFlex>
|
||||||
</AFlex>
|
</AFlex>
|
||||||
|
@@ -43,7 +43,6 @@ export const useCommentStore = defineStore(
|
|||||||
*/
|
*/
|
||||||
async function getCommentList(params: any) {
|
async function getCommentList(params: any) {
|
||||||
const data: any = {
|
const data: any = {
|
||||||
user_id: params.user_id,
|
|
||||||
topic_id: params.topic_id,
|
topic_id: params.topic_id,
|
||||||
page: params.page,
|
page: params.page,
|
||||||
size: params.size,
|
size: params.size,
|
||||||
@@ -94,7 +93,6 @@ export const useCommentStore = defineStore(
|
|||||||
page: data.page,
|
page: data.page,
|
||||||
size: data.size,
|
size: data.size,
|
||||||
comment_id: data.comment_id,
|
comment_id: data.comment_id,
|
||||||
user_id: data.user_id,
|
|
||||||
};
|
};
|
||||||
replyLoading.value = true;
|
replyLoading.value = true;
|
||||||
replyList.value = {} as Comment;
|
replyList.value = {} as Comment;
|
||||||
@@ -115,7 +113,6 @@ export const useCommentStore = defineStore(
|
|||||||
async function commentLike(data: any): Promise<boolean> {
|
async function commentLike(data: any): Promise<boolean> {
|
||||||
const params: any = {
|
const params: any = {
|
||||||
comment_id: data.comment_id,
|
comment_id: data.comment_id,
|
||||||
user_id: data.user_id,
|
|
||||||
topic_id: data.topic_id,
|
topic_id: data.topic_id,
|
||||||
};
|
};
|
||||||
const result: any = await commentLikeApi(params);
|
const result: any = await commentLikeApi(params);
|
||||||
@@ -133,7 +130,6 @@ export const useCommentStore = defineStore(
|
|||||||
async function cancelCommentLike(data: any): Promise<boolean> {
|
async function cancelCommentLike(data: any): Promise<boolean> {
|
||||||
const params: any = {
|
const params: any = {
|
||||||
comment_id: data.comment_id,
|
comment_id: data.comment_id,
|
||||||
user_id: data.user_id,
|
|
||||||
topic_id: data.topic_id,
|
topic_id: data.topic_id,
|
||||||
};
|
};
|
||||||
const result: any = await cancelCommentLikeApi(params);
|
const result: any = await cancelCommentLikeApi(params);
|
||||||
|
@@ -6,20 +6,12 @@ export const useAuthStore = defineStore(
|
|||||||
'user',
|
'user',
|
||||||
() => {
|
() => {
|
||||||
const user: any = reactive({
|
const user: any = reactive({
|
||||||
accessToken: '',
|
access_token: '',
|
||||||
uid: '',
|
uid: '',
|
||||||
refreshToken: '',
|
username: '',
|
||||||
expiresAt: 0,
|
nickname: '',
|
||||||
userInfo: {
|
avatar: '',
|
||||||
username: '',
|
status: '',
|
||||||
nickname: '',
|
|
||||||
email: '',
|
|
||||||
phone: '',
|
|
||||||
avatar: '',
|
|
||||||
gender: '',
|
|
||||||
status: '',
|
|
||||||
created_at: '',
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@@ -26,12 +26,9 @@ const {onAuthRequired, onResponseRefreshToken} = createServerTokenAuthentication
|
|||||||
handler: async () => {
|
handler: async () => {
|
||||||
// 刷新token
|
// 刷新token
|
||||||
const user = useStore().user;
|
const user = useStore().user;
|
||||||
const res: any = await refreshToken(user.user?.refreshToken);
|
const res: any = await refreshToken();
|
||||||
if (res.code === 200 && res.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const {access_token, refresh_token, uid} = res.data;
|
user.user.access_token = res.data;
|
||||||
user.user.accessToken = access_token;
|
|
||||||
user.user.refreshToken = refresh_token;
|
|
||||||
user.user.uid = uid;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -49,7 +46,7 @@ export const service = createAlova({
|
|||||||
beforeRequest: onAuthRequired(async (method: any) => {
|
beforeRequest: onAuthRequired(async (method: any) => {
|
||||||
if (!method.meta?.ignoreToken) {
|
if (!method.meta?.ignoreToken) {
|
||||||
const user = useStore().user;
|
const user = useStore().user;
|
||||||
method.config.headers.Authorization = `${import.meta.env.VITE_APP_TOKEN_KEY} ${user.user.accessToken}`;
|
method.config.headers.Authorization = `${import.meta.env.VITE_APP_TOKEN_KEY} ${user.user.access_token}`;
|
||||||
}
|
}
|
||||||
const lang = useStore().lang;
|
const lang = useStore().lang;
|
||||||
method.config.headers['Accept-Language'] = lang.lang || 'zh';
|
method.config.headers['Accept-Language'] = lang.lang || 'zh';
|
||||||
@@ -78,7 +75,7 @@ export const service = createAlova({
|
|||||||
onOk() {
|
onOk() {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
window.location.href = '/login';
|
window.location.href = '/login';
|
||||||
},2000);
|
}, 1000);
|
||||||
},
|
},
|
||||||
// onCancel() {
|
// onCancel() {
|
||||||
// setTimeout(() => {
|
// setTimeout(() => {
|
||||||
|
@@ -38,7 +38,7 @@ const githubRedirectUrl = ref<string>('');
|
|||||||
const giteeRedirectUrl = ref<string>('');
|
const giteeRedirectUrl = ref<string>('');
|
||||||
const qqRedirectUrl = ref<string>('');
|
const qqRedirectUrl = ref<string>('');
|
||||||
const client = useStore().client;
|
const client = useStore().client;
|
||||||
|
const userStore = useStore().user;
|
||||||
/**
|
/**
|
||||||
* Get the redirect url of Github OAuth
|
* Get the redirect url of Github OAuth
|
||||||
*/
|
*/
|
||||||
@@ -97,16 +97,15 @@ function openGithubUrl() {
|
|||||||
|
|
||||||
const messageHandler = async (e: any) => {
|
const messageHandler = async (e: any) => {
|
||||||
if (typeof e.data === 'string') {
|
if (typeof e.data === 'string') {
|
||||||
const data: any = JSON.parse(e.data);
|
const res: any = JSON.parse(e.data);
|
||||||
if (data.code === 200 && data.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const user = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {access_token, refresh_token, uid, expires_at, user_info} = data.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
user.user.accessToken = access_token;
|
userStore.user.username = res.data.username;
|
||||||
user.user.refreshToken = refresh_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
user.user.uid = uid;
|
userStore.user.nickname = res.data.nickname;
|
||||||
user.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
user.user.userInfo = user_info;
|
await getUserDevice();
|
||||||
await getUserDevice(uid);
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
window.removeEventListener("message", messageHandler);
|
window.removeEventListener("message", messageHandler);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -141,16 +140,15 @@ function openGiteeUrl() {
|
|||||||
|
|
||||||
const messageHandler = async (e: any) => {
|
const messageHandler = async (e: any) => {
|
||||||
if (typeof e.data === 'string') {
|
if (typeof e.data === 'string') {
|
||||||
const data: any = JSON.parse(e.data);
|
const res: any = JSON.parse(e.data);
|
||||||
if (data.code === 200 && data.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const user = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {access_token, refresh_token, uid, expires_at, user_info} = data.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
user.user.accessToken = access_token;
|
userStore.user.username = res.data.username;
|
||||||
user.user.refreshToken = refresh_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
user.user.uid = uid;
|
userStore.user.nickname = res.data.nickname;
|
||||||
user.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
user.user.userInfo = user_info;
|
await getUserDevice();
|
||||||
await getUserDevice(uid);
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
window.removeEventListener("message", messageHandler);
|
window.removeEventListener("message", messageHandler);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -183,16 +181,15 @@ function openQQUrl() {
|
|||||||
|
|
||||||
const messageHandler = async (e: any) => {
|
const messageHandler = async (e: any) => {
|
||||||
if (typeof e.data === 'string') {
|
if (typeof e.data === 'string') {
|
||||||
const data: any = JSON.parse(e.data);
|
const res: any = JSON.parse(e.data);
|
||||||
if (data.code === 200 && data.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const user = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {access_token, refresh_token, uid, expires_at, user_info} = data.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
user.user.accessToken = access_token;
|
userStore.user.username = res.data.username;
|
||||||
user.user.refreshToken = refresh_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
user.user.uid = uid;
|
userStore.user.nickname = res.data.nickname;
|
||||||
user.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
user.user.userInfo = user_info;
|
await getUserDevice();
|
||||||
await getUserDevice(uid);
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
window.removeEventListener("message", messageHandler);
|
window.removeEventListener("message", messageHandler);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
@@ -207,6 +207,7 @@ const showPhoneRotateCaptcha = ref<boolean>(false);
|
|||||||
const showAccountRotateCaptcha = ref<boolean>(false);
|
const showAccountRotateCaptcha = ref<boolean>(false);
|
||||||
const captchaData = reactive({angle: 0, image: "", thumb: "", key: ""});
|
const captchaData = reactive({angle: 0, image: "", thumb: "", key: ""});
|
||||||
const loginLoading = ref<boolean>(false);
|
const loginLoading = ref<boolean>(false);
|
||||||
|
const userStore = useStore().user;
|
||||||
const phoneLoginRotateEvent = {
|
const phoneLoginRotateEvent = {
|
||||||
confirm: (angle: number) => {
|
confirm: (angle: number) => {
|
||||||
checkPhoneLoginCaptchaDebounce(angle);
|
checkPhoneLoginCaptchaDebounce(angle);
|
||||||
@@ -378,13 +379,12 @@ async function phoneLoginSubmit() {
|
|||||||
loginLoading.value = true;
|
loginLoading.value = true;
|
||||||
const res: any = await phoneLoginApi(phoneLoginForm);
|
const res: any = await phoneLoginApi(phoneLoginForm);
|
||||||
if (res.code === 200 && res.success) {
|
if (res.code === 200 && res.success) {
|
||||||
const userStore = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {uid, access_token, refresh_token, expires_at, user_info} = res.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
userStore.user.uid = uid;
|
userStore.user.username = res.data.username;
|
||||||
userStore.user.accessToken = access_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
userStore.user.refreshToken = refresh_token;
|
userStore.user.nickname = res.data.nickname;
|
||||||
userStore.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
userStore.user.userInfo = user_info;
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
loginLoading.value = false;
|
loginLoading.value = false;
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -461,13 +461,12 @@ async function checkAccountLoginCaptcha(angle: number) {
|
|||||||
loginLoading.value = true;
|
loginLoading.value = true;
|
||||||
const res: any = await accountLoginApi(params);
|
const res: any = await accountLoginApi(params);
|
||||||
if (res.code === 200 && res.success) {
|
if (res.code === 200 && res.success) {
|
||||||
const userStore = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {uid, access_token, refresh_token, expires_at, user_info} = res.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
userStore.user.uid = uid;
|
userStore.user.username = res.data.username;
|
||||||
userStore.user.accessToken = access_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
userStore.user.refreshToken = refresh_token;
|
userStore.user.nickname = res.data.nickname;
|
||||||
userStore.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
userStore.user.userInfo = user_info;
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
loginLoading.value = false;
|
loginLoading.value = false;
|
||||||
showAccountRotateCaptcha.value = false;
|
showAccountRotateCaptcha.value = false;
|
||||||
|
@@ -17,7 +17,7 @@ import {SmileOutlined} from "@ant-design/icons-vue";
|
|||||||
const websocket = useStore().websocket;
|
const websocket = useStore().websocket;
|
||||||
const userInfo = useStore().user;
|
const userInfo = useStore().user;
|
||||||
const wsOptions = {
|
const wsOptions = {
|
||||||
url: import.meta.env.VITE_MESSAGE_SOCKET_URL + "?user_id=" + userInfo.user.uid + "&token=" + userInfo.user.accessToken,
|
url: import.meta.env.VITE_MESSAGE_SOCKET_URL + "?user_id=" + userInfo.user.uid + "&token=" + userInfo.user.access_token,
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
@@ -71,6 +71,7 @@ const client = useStore().client;
|
|||||||
const qrcode = ref<string>('');
|
const qrcode = ref<string>('');
|
||||||
const status = ref<string>('loading');
|
const status = ref<string>('loading');
|
||||||
const websocket = useStore().websocket;
|
const websocket = useStore().websocket;
|
||||||
|
const userStore = useStore().user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取client_id
|
* 获取client_id
|
||||||
@@ -87,14 +88,14 @@ async function getClientId() {
|
|||||||
* 获取二维码
|
* 获取二维码
|
||||||
*/
|
*/
|
||||||
async function getQrCode() {
|
async function getQrCode() {
|
||||||
const res: any = await generateQrCode(client.getClientId() || "");
|
const res: any = await generateQrCode(client.getClientId() || "");
|
||||||
if (res.code === 200 && res.data) {
|
if (res.code === 200 && res.data) {
|
||||||
status.value = 'active';
|
status.value = 'active';
|
||||||
qrcode.value = res.data;
|
qrcode.value = res.data;
|
||||||
await handleListenMessage();
|
await handleListenMessage();
|
||||||
} else {
|
} else {
|
||||||
status.value = 'expired';
|
status.value = 'expired';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -109,17 +110,16 @@ const wsOptions = {
|
|||||||
async function handleListenMessage() {
|
async function handleListenMessage() {
|
||||||
websocket.initialize(wsOptions);
|
websocket.initialize(wsOptions);
|
||||||
// 注册消息接收处理函数
|
// 注册消息接收处理函数
|
||||||
websocket.on('message', async (data: any) => {
|
websocket.on('message', async (res: any) => {
|
||||||
if (data.code === 200 && data.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const user = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {access_token, refresh_token, uid, expires_at, user_info} = data.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
user.user.accessToken = access_token;
|
userStore.user.username = res.data.username;
|
||||||
user.user.refreshToken = refresh_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
user.user.uid = uid;
|
userStore.user.nickname = res.data.nickname;
|
||||||
user.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
user.user.userInfo = user_info;
|
|
||||||
status.value = 'scanned';
|
status.value = 'scanned';
|
||||||
await getUserDevice(uid);
|
await getUserDevice();
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
router.push('/main');
|
router.push('/main');
|
||||||
|
@@ -39,7 +39,7 @@ const {t} = useI18n();
|
|||||||
const githubRedirectUrl = ref<string>('');
|
const githubRedirectUrl = ref<string>('');
|
||||||
const giteeRedirectUrl = ref<string>('');
|
const giteeRedirectUrl = ref<string>('');
|
||||||
const qqRedirectUrl = ref<string>('');
|
const qqRedirectUrl = ref<string>('');
|
||||||
|
const userStore = useStore().user;
|
||||||
/**
|
/**
|
||||||
* Get the redirect url of Github OAuth
|
* Get the redirect url of Github OAuth
|
||||||
*/
|
*/
|
||||||
@@ -98,16 +98,15 @@ function openGithubUrl() {
|
|||||||
|
|
||||||
const messageHandler = async (e: any) => {
|
const messageHandler = async (e: any) => {
|
||||||
if (typeof e.data === 'string') {
|
if (typeof e.data === 'string') {
|
||||||
const data: any = JSON.parse(e.data);
|
const res: any = JSON.parse(e.data);
|
||||||
if (data.code === 200 && data.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const user = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {access_token, refresh_token, uid, expires_at, user_info} = data.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
user.user.accessToken = access_token;
|
userStore.user.username = res.data.username;
|
||||||
user.user.refreshToken = refresh_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
user.user.uid = uid;
|
userStore.user.nickname = res.data.nickname;
|
||||||
user.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
user.user.userInfo = user_info;
|
await getUserDevice();
|
||||||
await getUserDevice(uid);
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
window.removeEventListener("message", messageHandler);
|
window.removeEventListener("message", messageHandler);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -141,16 +140,15 @@ function openGiteeUrl() {
|
|||||||
|
|
||||||
const messageHandler = async (e: any) => {
|
const messageHandler = async (e: any) => {
|
||||||
if (typeof e.data === 'string') {
|
if (typeof e.data === 'string') {
|
||||||
const data: any = JSON.parse(e.data);
|
const res: any = JSON.parse(e.data);
|
||||||
if (data.code === 200 && data.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const user = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {access_token, refresh_token, uid, expires_at, user_info} = data.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
user.user.accessToken = access_token;
|
userStore.user.username = res.data.username;
|
||||||
user.user.refreshToken = refresh_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
user.user.uid = uid;
|
userStore.user.nickname = res.data.nickname;
|
||||||
user.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
user.user.userInfo = user_info;
|
await getUserDevice();
|
||||||
await getUserDevice(uid);
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
window.removeEventListener("message", messageHandler);
|
window.removeEventListener("message", messageHandler);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -183,16 +181,15 @@ function openQQUrl() {
|
|||||||
|
|
||||||
const messageHandler = async (e: any) => {
|
const messageHandler = async (e: any) => {
|
||||||
if (typeof e.data === 'string') {
|
if (typeof e.data === 'string') {
|
||||||
const data: any = JSON.parse(e.data);
|
const res: any = JSON.parse(e.data);
|
||||||
if (data.code === 200 && data.data) {
|
if (res.code === 200 && res.data) {
|
||||||
const user = useStore().user;
|
userStore.user.uid = res.data.uid;
|
||||||
const {access_token, refresh_token, uid, expires_at, user_info} = data.data;
|
userStore.user.access_token = res.data.access_token;
|
||||||
user.user.accessToken = access_token;
|
userStore.user.username = res.data.username;
|
||||||
user.user.refreshToken = refresh_token;
|
userStore.user.avatar = res.data.avatar;
|
||||||
user.user.uid = uid;
|
userStore.user.nickname = res.data.nickname;
|
||||||
user.user.expiresAt = expires_at;
|
userStore.user.status = res.data.status;
|
||||||
user.user.userInfo = user_info;
|
await getUserDevice();
|
||||||
await getUserDevice(uid);
|
|
||||||
message.success(t('login.loginSuccess'));
|
message.success(t('login.loginSuccess'));
|
||||||
window.removeEventListener("message", messageHandler);
|
window.removeEventListener("message", messageHandler);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
Reference in New Issue
Block a user