微信小程序 登录功能代码
时间: 2023-09-19 22:12:19 浏览: 35
小程序登录功能代码如下:
1. 在app.js中添加登录函数:
```
//app.js
App({
onLaunch: function () {
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
this.globalData.code = res.code
// 调用登录接口
this.login()
}
})
},
// 登录方法
login: function () {
wx.request({
url: '登录接口地址',
method: 'POST',
data: {
code: this.globalData.code
},
success: res => {
// 将token存储到本地
wx.setStorageSync('token', res.data.token)
}
})
},
globalData: {
code: '',
userInfo: null
}
})
```
2. 在需要登录的页面中调用登录方法:
```
// pages/index/index.js
const app = getApp()
Page({
onLoad: function () {
// 判断是否已登录
if (!wx.getStorageSync('token')) {
// 调用登录方法
app.login()
}
}
})
```
3. 在后端接口中实现登录逻辑并返回token:
```
# Python Flask后端示例代码
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
@app.route('/login', methods=['POST'])
def login():
code = request.json.get('code')
# 调用微信接口获取session_key和openid
res = requests.get('https://api.weixin.qq.com/sns/jscode2session', params={
'appid': 'appid',
'secret': 'secret',
'js_code': code,
'grant_type': 'authorization_code'
})
session_key = res.json().get('session_key')
openid = res.json().get('openid')
# TODO: 根据openid查询用户信息并返回token
token = 'token'
return jsonify({'token': token})
if __name__ == '__main__':
app.run()
```