Appearance
获取用户信息
获取当前登录用户的详细信息。
基本用法
javascript
try {
const user = await sdk.getUserProfile();
console.log('用户 ID:', user.userId);
console.log('用户名:', user.username);
console.log('邮箱:', user.email);
console.log('状态:', user.status);
console.log('创建时间:', new Date(user.createdTime));
} catch (error) {
if (error.code === 'UNAUTHORIZED') {
console.error('Token 已过期,请重新登录');
// 重定向到登录页
window.location.href = '/login';
} else {
console.error('获取用户信息失败:', error.message);
}
}返回值
javascript
{
userId: string;
email: string;
username: string;
createdTime: number;
updatedTime: number;
status: 'ACTIVE' | 'INACTIVE' | 'BANNED';
createDate?: string; // 创建日期(格式化字符串)
}在应用启动时获取用户信息
javascript
async function initializeApp() {
try {
if (sdk.isLoggedIn()) {
const user = await sdk.getUserProfile();
// 缓存用户信息
setUser(user);
}
} catch (error) {
if (error.code === 'UNAUTHORIZED') {
sdk.logout();
// 重定向到登录页
window.location.href = '/login';
}
}
}
// 应用启动时调用
initializeApp();React 示例
javascript
import { useEffect, useState } from 'react';
function UserProfile() {
const [user, setUser] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
async function loadUser() {
try {
if (sdk.isLoggedIn()) {
const userData = await sdk.getUserProfile();
setUser(userData);
}
} catch (error) {
if (error.code === 'UNAUTHORIZED') {
sdk.logout();
window.location.href = '/login';
}
} finally {
setLoading(false);
}
}
loadUser();
}, []);
if (loading) {
return <div>加载中...</div>;
}
if (!user) {
return <div>未登录</div>;
}
return (
<div>
<h1>欢迎, {user.username}</h1>
<p>邮箱: {user.email}</p>
<p>状态: {user.status}</p>
</div>
);
}Vue 示例
vue
<template>
<div>
<div v-if="loading">加载中...</div>
<div v-else-if="user">
<h1>欢迎, {{ user.username }}</h1>
<p>邮箱: {{ user.email }}</p>
<p>状态: {{ user.status }}</p>
</div>
<div v-else>未登录</div>
</div>
</template>
<script>
export default {
data() {
return {
user: null,
loading: true
};
},
async mounted() {
try {
if (this.$sdk.isLoggedIn()) {
this.user = await this.$sdk.getUserProfile();
}
} catch (error) {
if (error.code === 'UNAUTHORIZED') {
this.$sdk.logout();
this.$router.push('/login');
}
} finally {
this.loading = false;
}
}
};
</script>错误处理
javascript
try {
const user = await sdk.getUserProfile();
} catch (error) {
const { code, message } = error;
switch (code) {
case 'UNAUTHORIZED':
// Token 已过期,清除并重定向
sdk.logout();
window.location.href = '/login';
break;
case 'USER_NOT_FOUND':
console.error('用户不存在');
break;
default:
console.error(`获取用户信息失败: ${message}`);
}
}注意事项
- 需要先登录(Token 有效)才能获取用户信息
- 如果 Token 已过期,会抛出
UNAUTHORIZED错误 - 建议在应用启动时调用一次,缓存用户信息
- Token 过期时需要重新登录