loginNew.js 3.73 KB
// pages/login/loginNew/loginNew.js
import request from '../../../api/request.js'
var appid = 'wx186236fdcd93edcc';
Page({

    /**
     * 页面的初始数据
     */
    data: {
        checked: true,
        session_key: '',
        openId: '',
        encryptedData: '',
        iv: '',
        phone: ''
    },
    //多选框
    onChange(e) {
        this.setData({
            checked: e.detail
        })
    },
    //获取session_key
    getOpenId() { 
        return request({
            url: `/wx/app/getOpenId/wx186236fdcd93edcc`,
            method: 'get',
            data: {
                code: this.data.loginCode
            },
        }).then(res2 => {
            this.setData({
                session_key: res2.data.sessionKey
            })
            this.setData({
                openId: res2.data.openid
            })
            console.log(this.data);
        })
    },
    getPhoneNumber(e) {
        console.log('?')
        if(!this.data.checked) {
           return wx.showToast({title: '请先阅读并同意用户协议和隐私协议',icon: 'none'})
        }
        console.log(e.detail)
        if (e.detail.errMsg == 'getPhoneNumber:ok') {
            this.setData({
                encryptedData: e.detail.encryptedData,
                iv: e.detail.iv,
            }, () => {
                this.login()
            })
        }
    },
    login() {
        if (!this.data.encryptedData || !this.data.session_key || !this.data.iv) {
            wx.showToast({
                title: '一键登陆失败,请重试',
                icon: 'none',
                duration: 2000
            })
        }
        request({
            url: `/wx/app/oneClickLogin/`+ appid,
            method: 'post',
            data: {
                "encryptedData": this.data.encryptedData,
                "sessionKey": this.data.session_key,
                "iv": this.data.iv,
                "openId": this.data.openId
            },
        }).then(res => {
            if (res.code == 0) {
                if (res.data) {
                    this.setData({
                        phone: res.data.phone
                    }, () => {
                        wx.setStorageSync('userInfo', res.data)
                        wx.setStorageSync('userInfo_id', res.data.id)
                        wx.switchTab({
                            url: '/pages/mine/index',
                        })
                    })
                } else {
                    wx.showToast({
                        title: '一键登陆失败,请重试',
                        icon: 'none',
                        duration: 2000
                    })
                }
            }
        })
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad() {
        wx.login({
            success: (res) => {
                if (res.code) {
                    this.setData({
                        loginCode: res.code
                    })
                    this.getOpenId()
                } else {
                    console.log('登录失败!' + res.errMsg)
                }
            }
        })
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})