完成用户登录和全局token
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
<scroll-view class="scrollarea" scroll-y type="list">
|
||||
<view hidden="{{label_value !== 'label_1'}}"><home-component></home-component></view>
|
||||
<view hidden="{{label_value !== 'label_2'}}"><chat-component></chat-component></view>
|
||||
<view hidden="{{label_value !== 'label_3'}}"><user-component></user-component></view>
|
||||
<view hidden="{{label_value !== 'label_3'}}"><user-component id="userComp"></user-component></view>
|
||||
<t-tab-bar t-class="t-tab-bar" value="{{label_value}}" bindchange="onChange" shape="round" theme="tag" split="{{false}}">
|
||||
<t-tab-bar-item
|
||||
wx:for="{{list}}"
|
||||
|
||||
0
miniprogram/pages/personpage/personpage.json
Normal file
0
miniprogram/pages/personpage/personpage.json
Normal file
0
miniprogram/pages/personpage/personpage.ts
Normal file
0
miniprogram/pages/personpage/personpage.ts
Normal file
0
miniprogram/pages/personpage/personpage.wxml
Normal file
0
miniprogram/pages/personpage/personpage.wxml
Normal file
0
miniprogram/pages/personpage/personpage.wxss
Normal file
0
miniprogram/pages/personpage/personpage.wxss
Normal file
@@ -23,12 +23,13 @@ Component({
|
||||
},
|
||||
async wxPhone(e: { detail: any; }){
|
||||
console.log("授权回调结果:", e);
|
||||
|
||||
if (e.detail.errMsg === "getPhoneNumber:ok") {
|
||||
const { encryptedData, iv} = e.detail;
|
||||
console.log("encryptedData:",encryptedData)
|
||||
const code = await this.getLoginCode();
|
||||
console.log("获得的code为:",code)
|
||||
wx.request({
|
||||
wx.request<WechatMiniprogram.LoginUserMsg>({
|
||||
url: `${envConfig.apiBaseUrl}/user/login`,
|
||||
method: "POST",
|
||||
data: {
|
||||
@@ -45,11 +46,60 @@ Component({
|
||||
theme: 'success',
|
||||
direction: 'column',
|
||||
});
|
||||
// 登录成功,存储用户信息并跳转首页
|
||||
//wx.setStorageSync("userInfo", res.data.userInfo);
|
||||
//wx.navigateTo({ url: "/pages/index/index" });
|
||||
} else {
|
||||
wx.showToast({ title: "登录失败", icon: "none" });
|
||||
const app = getApp()
|
||||
app.setToken(res.data.token)
|
||||
app.setUserInfo({
|
||||
uid: res.data.userinfo.uid,
|
||||
username: res.data.userinfo.username,
|
||||
telephone: res.data.userinfo.telephone,
|
||||
gender: 2,
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
// 3.1 刷新user组件
|
||||
const pages = getCurrentPages();
|
||||
let homePage = null;
|
||||
pages.forEach(page => {
|
||||
if (page.route === 'pages/index/index') {
|
||||
homePage = page;
|
||||
}
|
||||
});
|
||||
|
||||
if (homePage) {
|
||||
const userComponent = homePage.selectComponent('#userComp');
|
||||
if (userComponent) {
|
||||
userComponent.refreshUserStatus();
|
||||
}
|
||||
} else {
|
||||
// 首页不在栈中,跳转首页
|
||||
wx.redirectTo({
|
||||
url: '/pages/home/home'
|
||||
});
|
||||
// 注意:如果跳转后不需要执行下面的返回逻辑,可在此处加 return
|
||||
// return;
|
||||
}
|
||||
|
||||
// 3.2 页面跳转/返回
|
||||
if (pages.length > 1) {
|
||||
// 返回上一页
|
||||
wx.navigateBack({
|
||||
delta: 1
|
||||
});
|
||||
} else {
|
||||
// 跳转到首页(tabBar页面用switchTab)
|
||||
wx.switchTab({
|
||||
url: '/pages/index/index'
|
||||
});
|
||||
}
|
||||
|
||||
}, 1500); // 延迟时间:1500毫秒(1.5秒),可根据需要调整
|
||||
}else{
|
||||
Toast({
|
||||
selector: '#t-toast',
|
||||
message: '登录失败',
|
||||
theme: 'error',
|
||||
direction: 'column',
|
||||
});
|
||||
}
|
||||
},
|
||||
fail() {
|
||||
@@ -61,6 +111,30 @@ Component({
|
||||
wx.showToast({ title: "请允许授权以完成登录", icon: "none" });
|
||||
}
|
||||
},
|
||||
testSend(){
|
||||
const token = wx.getStorageSync("token");
|
||||
wx.request({
|
||||
url: `${envConfig.apiBaseUrl}/user/test`,
|
||||
method: "POST",
|
||||
data: {
|
||||
|
||||
},
|
||||
header:{
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${token}`
|
||||
}
|
||||
,
|
||||
success(res){
|
||||
console.log(res)
|
||||
Toast({
|
||||
selector: '#t-toast',
|
||||
message: '测试成功',
|
||||
theme: 'success',
|
||||
direction: 'column',
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
onBack() {
|
||||
// 获取当前页面栈
|
||||
const pages = getCurrentPages();
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<!-- 手机号登录按钮 -->
|
||||
<button
|
||||
class="login-btn phone-btn"
|
||||
bindtap="goPhoneLogin"
|
||||
bindtap="testSend"
|
||||
hover-class="btn-hover"
|
||||
>
|
||||
<icon class="btn-icon" type="phone" size="20"></icon>
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"t-grid": "tdesign-miniprogram/grid/grid",
|
||||
"t-grid-item": "tdesign-miniprogram/grid-item/grid-item",
|
||||
"t-avatar": "tdesign-miniprogram/avatar/avatar",
|
||||
"t-avatar-group": "tdesign-miniprogram/avatar-group/avatar-group"
|
||||
"t-avatar-group": "tdesign-miniprogram/avatar-group/avatar-group",
|
||||
"t-toast": "tdesign-miniprogram/toast/toast"
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,38 @@
|
||||
import Toast from 'tdesign-miniprogram/toast/index';
|
||||
Component({
|
||||
data: {
|
||||
img1: 'https://tdesign.gtimg.com/mobile/demos/example1.png',
|
||||
img2: 'https://tdesign.gtimg.com/mobile/demos/example2.png',
|
||||
img3: 'https://tdesign.gtimg.com/mobile/demos/example3.png',
|
||||
image: 'https://tdesign.gtimg.com/mobile/demos/avatar1.png',
|
||||
hasToken: false,
|
||||
username: ''
|
||||
},
|
||||
methods: {
|
||||
userlogin(){
|
||||
wx.navigateTo({url:'/pages/user-login/user-login'})
|
||||
}
|
||||
},
|
||||
refreshUserStatus(){
|
||||
console.log("主动刷新user界面")
|
||||
const app = getApp();
|
||||
console.log("全局userinfo",app.globalData.userInfo)
|
||||
console.log("全局用户信息:", app.globalData.userInfo.username); // 这里打印的是 userInfo
|
||||
const userInfo = app.globalData.userInfo || {};
|
||||
console.log("user中的userInfo:",userInfo)
|
||||
this.setData({
|
||||
hasToken: !!app.globalData.token, // 从全局变量获取token状态
|
||||
username: userInfo.username
|
||||
});
|
||||
// 调试:确认页面数据是否正确
|
||||
console.log("页面username赋值后:", this.data.username);
|
||||
},
|
||||
|
||||
},
|
||||
lifetimes:{
|
||||
attached(){
|
||||
console.log("user界面刷新")
|
||||
this.refreshUserStatus()
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<view class="user-contain">
|
||||
<view class="user-avatar">
|
||||
<t-avatar class="avatar-example" image="{{image}}" size="large" />
|
||||
<a class="avatar-font" bind:tap="userlogin">点击登录/注册</a>
|
||||
<a class="avatar-font" bind:tap="userlogin">{{hasToken ? (username || '用户中心') : '点击登录/注册'}}</a>
|
||||
<t-toast id="t-toast" />
|
||||
</view>
|
||||
<view class="block" class="server1">
|
||||
<t-grid column="{{4}}" theme="card" >
|
||||
|
||||
Reference in New Issue
Block a user