Commit d684c0f0 by 张天炜

小程序登录功能更新

parent f4f8bf07
...@@ -2,112 +2,126 @@ ...@@ -2,112 +2,126 @@
import Wx from '../../utils/Wx.js' import Wx from '../../utils/Wx.js'
import api from '../../utils/Api.js' import api from '../../utils/Api.js'
const { const {
$Toast $Toast
} = require('../../iview/base/index'); } = require('../../iview/base/index');
const app = getApp() const app = getApp()
Page({ Page({
/** /**
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function(options) { onLoad: function(options) {
}, },
/** /**
* 生命周期函数--监听页面初次渲染完成 * 生命周期函数--监听页面初次渲染完成
*/ */
onReady: function() { onReady: function() {
}, },
/** /**
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow: function() { onShow: function() {
}, },
handleWxAuth: function(event) { handleWxAuth: function() {
Wx.login().then(res => { var _this = this
api.login({ Wx.login().then(res => {
code: res.code, //获取登录的临时凭证
signature: event.detail.signature, _this.wxLoginCode = res.code
rawData: event.detail.rawData, })
encryptedData: event.detail.encryptedData,
iv: event.detail.iv,
scene: app.options.query && app.options.query.scene ? decodeURIComponent(app.options.query.scene) : ''
}).then(res => {
if (!res.code) {
app.globalData.userInfo = res.user
wx.setStorageSync('token', res.token)
$Toast({
content: '授权登录成功',
type: 'success'
});
setTimeout(() => {
wx.navigateBack({
delta: 1
})
}, 1000);
} else {
$Toast({
content: '微信授权失败,请重试',
type: 'error'
});
}
})
})
},
handlePhoneAuth: function(event) { wx.getUserProfile({
Wx.login().then(res => { desc: '用于完善个人资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中
let encryptedData = event.detail.encryptedData success: (e) => {
let iv = event.detail.iv api.login({
this.decodePhoneData(res.code, encryptedData, iv) code: _this.wxLoginCode,
}) signature: e.signature,
}, rawData: e.rawData,
encryptedData: e.encryptedData,
iv: e.iv,
scene: app.options.query && app.options.query.scene ? decodeURIComponent(app.options.query.scene) : ''
}).then(res => {
console.log(res)
if (!_this.wxLoginCode) {
app.globalData.userInfo = res.user
wx.setStorageSync('token', res.token)
$Toast({
content: '授权登录成功',
type: 'success'
});
setTimeout(() => {
wx.navigateBack({
delta: 1
})
}, 1000);
} else {
$Toast({
content: '微信授权失败,请重试',
type: 'error'
});
}
})
},
fail: (e) => {
console.log(e)
}
})
// 返回首页 },
gotoHome: function() {
wx.switchTab({ handlePhoneAuth: function(event) {
url: '../index/index', Wx.login().then(res => {
}) let encryptedData = event.detail.encryptedData
}, let iv = event.detail.iv
this.decodePhoneData(res.code, encryptedData, iv)
/** })
* 解密手机号数据 },
*/
decodePhoneData: function(code, encryptedData, iv) { // 返回首页
let that = this gotoHome: function() {
api.getPhoneNumber({ wx.switchTab({
code: code, url: '../index/index',
encryptedData: encryptedData, })
iv: iv },
}).then(res => {
if (!res.code) { /**
$Toast({ * 解密手机号数据
content: '手机号授权成功', */
type: 'success' decodePhoneData: function(code, encryptedData, iv) {
}); let that = this
let userInfo = app.globalData.userInfo api.getPhoneNumber({
app.globalData.userInfo = { code: code,
...userInfo, encryptedData: encryptedData,
...res.data iv: iv
} }).then(res => {
} else { if (!res.code) {
$Toast({ $Toast({
content: '手机号授权失败', content: '手机号授权成功',
type: 'error' type: 'success'
}); });
} let userInfo = app.globalData.userInfo
}) app.globalData.userInfo = {
} ...userInfo,
}) ...res.data
\ No newline at end of file }
} else {
$Toast({
content: '手机号授权失败',
type: 'error'
});
}
})
}
})
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
<view>美好的教育,行走在路上</view> <view>美好的教育,行走在路上</view>
</view> </view>
<view class='action-wrapper'> <view class='action-wrapper'>
<i-button bindgetuserinfo="handleWxAuth" type="success" shape="circle" open-type='getUserInfo'>微信授权</i-button> <!-- <i-button bindgetuserinfo="handleWxAuth" type="success" shape="circle" open-type='getUserInfo'>微信授权</i-button> -->
<i-button bindtap="handleWxAuth" type="success" shape="circle">微信授权</i-button>
<!-- <i-button bindgetphonenumber="handlePhoneAuth" type="info" shape="circle" open-type="getPhoneNumber">手机号授权</i-button> --> <!-- <i-button bindgetphonenumber="handlePhoneAuth" type="info" shape="circle" open-type="getPhoneNumber">手机号授权</i-button> -->
<!-- <view class="text-small text-hint tip">请完成微信授权</view> --> <!-- <view class="text-small text-hint tip">请完成微信授权</view> -->
<i-button bindtap="gotoHome" type="default" shape="circle">暂不登录</i-button> <i-button bindtap="gotoHome" type="default" shape="circle">暂不登录</i-button>
......
{ {
"description": "项目配置文件", "description": "项目配置文件,详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"packOptions": { "packOptions": {
"ignore": [] "ignore": [],
}, "include": []
"setting": { },
"urlCheck": false, "setting": {
"es6": true, "urlCheck": false,
"postcss": true, "es6": true,
"minified": true, "postcss": true,
"newFeature": true, "minified": true,
"nodeModules": false, "newFeature": true,
"autoAudits": false "nodeModules": false,
}, "autoAudits": false,
"compileType": "miniprogram", "coverView": true,
"libVersion": "2.10.2", "lazyloadPlaceholderEnable": false,
"appid": "wx1b834552a7d49bb3", "preloadBackgroundData": false,
"projectname": "%E7%BE%8E%E8%A1%8C%E8%80%85%E4%BA%B2%E5%AD%90%E6%B8%B8", "uglifyFileName": false,
"debugOptions": { "uploadWithSourceMap": true,
"hidedInDevtools": [] "enhance": true,
}, "useMultiFrameRuntime": true,
"scripts": {}, "showShadowRootInWxmlPanel": true,
"simulatorType": "wechat", "packNpmManually": false,
"simulatorPluginLibVersion": {}, "packNpmRelationList": [],
"condition": { "minifyWXSS": true,
"search": { "useStaticServer": true,
"current": -1, "showES6CompileOption": false,
"list": [] "checkInvalidKey": true,
}, "babelSetting": {
"conversation": { "ignore": [],
"current": -1, "disablePlugins": [],
"list": [] "outputPath": ""
}, },
"plugin": { "disableUseStrict": false,
"current": -1, "useCompilerPlugins": false,
"list": [] "minifyWXML": true
}, },
"game": { "compileType": "miniprogram",
"list": [] "libVersion": "2.10.2",
}, "appid": "wx1b834552a7d49bb3",
"gamePlugin": { "projectname": "%E7%BE%8E%E8%A1%8C%E8%80%85%E4%BA%B2%E5%AD%90%E6%B8%B8",
"current": -1, "simulatorType": "wechat",
"list": [] "simulatorPluginLibVersion": {},
}, "condition": {
"miniprogram": { "miniprogram": {
"current": 16, "list": [
"list": [ {
{ "name": "活动详情(水梨)",
"id": 16, "pathName": "pages/detail/index",
"name": "活动详情(水梨)", "query": "id=662",
"pathName": "pages/detail/index", "scene": null
"query": "id=662", },
"scene": null {
}, "name": "直播页面",
{ "pathName": "pages/live/live",
"id": -1, "query": "",
"name": "直播页面", "scene": null
"pathName": "pages/live/live", },
"query": "", {
"scene": null "name": "个人中心",
}, "pathName": "pages/me/index",
{ "query": "",
"id": -1, "scene": null
"name": "个人中心", },
"pathName": "pages/me/index", {
"query": "", "name": "我的地址",
"scene": null "pathName": "pages/address/index",
}, "query": "",
{ "scene": null
"id": -1, },
"name": "我的地址", {
"pathName": "pages/address/index", "name": "添加地址",
"query": "", "pathName": "pages/address/create",
"scene": null "query": "",
}, "scene": null
{ },
"id": -1, {
"name": "添加地址", "name": "活动-下单购买",
"pathName": "pages/address/create", "pathName": "pages/detail/enroll/index",
"query": "", "query": "id=662",
"scene": null "scene": null
}, },
{ {
"id": -1, "name": "我的订单",
"name": "活动-下单购买", "pathName": "pages/me/order/index",
"pathName": "pages/detail/enroll/index", "query": "",
"query": "id=662", "scene": null
"scene": null }
}, ]
{ }
"id": -1, },
"name": "我的订单", "editorSetting": {
"pathName": "pages/me/order/index", "tabIndent": "insertSpaces",
"scene": null "tabSize": 2
} }
]
}
}
} }
\ No newline at end of file
{
"projectname": "%E7%BE%8E%E8%A1%8C%E8%80%85%E4%BA%B2%E5%AD%90%E6%B8%B8",
"setting": {
"compileHotReLoad": true
},
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"libVersion": "2.24.7"
}
\ No newline at end of file
...@@ -27,7 +27,7 @@ export default { ...@@ -27,7 +27,7 @@ export default {
login: obj => f(wx.login, obj), login: obj => f(wx.login, obj),
checkSession: obj => f(wx.checkSession, obj), checkSession: obj => f(wx.checkSession, obj),
authorize: obj => f(wx.authorize, obj), authorize: obj => f(wx.authorize, obj),
getUserInfo: obj => f(wx.getUserInfo, obj), // getUserInfo: obj => f(wx.getUserInfo, obj),
// 支付 // 支付
requestPayment: obj => f(wx.requestPayment, obj), requestPayment: obj => f(wx.requestPayment, obj),
...@@ -72,7 +72,8 @@ export default { ...@@ -72,7 +72,8 @@ export default {
removeStorage: obj => f(wx.removeStorage, obj), removeStorage: obj => f(wx.removeStorage, obj),
// 位置 // 位置
getLocation: obj => f(wx.getLocation, obj), //getLocation已注释,暂无具体业务调用该功能
// getLocation: obj => f(wx.getLocation, obj),
chooseLocation: obj => f(wx.chooseLocation, obj), chooseLocation: obj => f(wx.chooseLocation, obj),
openLocation: obj => f(wx.openLocation, obj), openLocation: obj => f(wx.openLocation, obj),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment