star.js
3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// pages/star/star.js
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
// 用来换取token的四个必传参数
// code换取的'session_key'和'openid'
code:"",
nickName:"",
avatar:"",
},
// 获取用户信息(授权)
star(e) {
// console.log(e); // 此处会返回换取token必须的'encryptedData'和'iv'两个参数,
// this.setData({
// encryptedData: e.detail.encryptedData,
// iv: e.detail.iv
// });
this.setData({
nickName: e.detail.userInfo.nickName,
avatar: e.detail.userInfo.avatarUrl
})
wx.setStorageSync('avatarUrl', e.detail.userInfo.avatarUrl);
wx.setStorageSync('nickName', e.detail.userInfo.nickName);
// 授权之后需要调取登录的方法
this.login()
},
// 登录
login() {
let t = this;
// let url = "用{'session_key','openid','encryptedData','iv'}换取token的接口";
let url = "/api/user/login";
// 此处是获取token需要传递的参数
let params = {
code:t.data.code,
nickname:t.data.nickName,
avatar:t.data.avatar
}
app.post(url, params,"post").then(r => {
console.log(r) // 此处会返回一个token => (小程序登录的唯一标识)
// 需要将token存在缓存中,(以备需要);
wx.setStorageSync("token", r.token) // =>存入的是一个键值
// 获取个人信息
let url = "/api/user/info";
app.post(url)
.then(res=>{
wx.setStorageSync("token", res.token);
wx.setStorageSync("is_vip", res.is_vip) //是否为vip
wx.setStorageSync("userId",res.id)
// 之后跳转页面/执行方法
wx.navigateBack({
delta:1
})
})
}).catch(err => {
console.log(err)
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
wx.login({
success: (res) => {
this.setData({
code:res.code
})
console.log(res, "此处会返回一个code");
// var url = "用code换取'session_key'和'openid'的接口";
// let url = "api/user/getSessionKey";
// var params = {
// code: res.code //这是wx.login的方法返回的code
// };
// app.post(url, params).then(r => {
// console.log(r) //此处会返回用code换取的'session_key'和'openid'
// // 之后将他们赋值到data中,方便调用
// this.setData({
// session_key: r.session_key,
// openid: r.openid
// })
// }).catch(err => {
// console.log(err)
// })
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function() {
}
})