您的位置:首页 > 移动开发 > 微信开发

微信小程序--登陆接口

2017-12-12 15:03 169 查看
本文主要介绍微信小程序的登录前端的流程。实现的逻辑是通过获取微信小程序的wx.login的server获取token接口, 传入code, rawData, signature, encryptData实现的。

登录

1.外部封装data.js

function getUs
4000
erInfo(code, loginStatus) {
//封装函数
wx.getUserInfo({
success: function (info) {
var rawData = info['rawData'];
var signature = info['signature'];
// var encryptData = info['encryptData'];
var encryptedData = info['encryptedData']; //注意是encryptedData不是encryptData...坑啊
var iv = info['iv'];
console.log(info)
//小程序调用server获取token接口, 传入code, rawData, signature, encryptData.
wx.request({
url: my_url, //my_url此处填写你封装的url
data: {
"code": code,
"rawData": rawData,
"signature": signature,
'iv': iv,
'encryptedData': encryptedData,
},
dataType: 'JSON ',
success: function (res) {
var str = res.data;
var session3rd = JSON.parse(str).session3rd
wx.setStorageSync("userid", session3rd)
if (res.statusCode != 200) {
wx.showModal({
title: '登录失败'
});
}
}
});
},
fail: function (res) {
loginStatus = false;
wx.openSetting({
success: function (data) {
if (data) {
if (data.authSetting["scope.userInfo"] == true) {
loginStatus = true;
wx.getUserInfo({
withCredentials: false,
success: function (data) {
console.info("3成功获取用户返回数据");
//设置缓存
//再次获取用户userid
getUserInfo(code, loginStatus);
},
fail: function () {
console.info("3授权失败返回数据");
}
})
}
}
},
fail: function () {
console.info("3设置失败返回数据");
}
})
}
})
}

module.exports = {
getUserInfo: getUserInfo,
}


2.示例app.js调用外部js实现小程序用户登陆注册

var util=require('pages/data/data.js');//此处绝对路径相对路径都能实现
App({
onLaunch: function () {
var loginStatus = true;
var userid=wx.getStorageSync("userid")
if (userid == "" || userid==undefined){
if (!loginStatus) {
wx.openSetting({
success: function (data) {
if (data) {
if (data.authSetting["scope.userInfo"] == true) {
loginStatus = true;
util.getUserInfo(code, loginStatus)
}
}
},
fail: function () {
console.info("设置失败返回数据");
}
})
}
else {
wx.login({
success: function (res) {
// console.log(res)
var code = res["code"];
//2.小程序调用wx.getUserInfo得到rawData, signatrue, encryptData.
util.getUserInfo(code, loginStatus)
}
})
}
}
}
})


Tips:由于这是初步代码逻辑严谨不足,需要各自完善。后端接口的逻辑需要自行解决哦!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息