• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共47篇

    微信小程序

关闭

返回栏目

关闭

返回微信小程序栏目

36 - 小程序登录 - 获得code、openId、session_key

作者:

贺及楼

成为作者

更新日期:2021-11-07 11:20:51

作用:开发者服务器获得获得code、openId、session_key

小程序wx.login({})用户获得code

文件位置:app.js
就是说有人打开小程序开发者就知道谁来了

  1. // 登录
  2. wx.login({
  3. success: res => {
  4. console.log(res.code)//这就是code
  5. // 发送 res.code 到后台换取 openId, sessionKey, unionId
  6. }
  7. })

先看一下有没有code

小程序发送code到开发者服务器

修改代码

  1. wx.login({
  2. success (res) {
  3. if (res.code) {
  4. //发起网络请求
  5. wx.request({
  6. url: "https://test.com/onLogin",
  7. data: {
  8. code: res.code
  9. }
  10. })
  11. } else {
  12. console.log("登录失败!" + res.errMsg)
  13. }
  14. }
  15. })

小程序后台拿AppID(小程序ID)、AppSecret(小程序密钥)

通过微信公众号登录到小程序后台
开发 — 开发管理 — 开发设置 — 开发者ID
就有AppID(小程序ID)、AppSecret(小程序密钥)

登录到微信开放平台加入自己的小程序

开发者服务器带上code、AppID、AppSecret(小程序密钥)访问微信服务器得openId、session_key

python — flask 例子

  1. @app.route("/onLogin", methods=["GET","POST"])
  2. def OnLogin():
  3. code = request.args["code"]#获得code
  4. url1 = "https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code"%(app.config["WEIXIN_OPEN_APP_ID"],app.config["WEIXIN_OPEN_APP_SECRET"],code)
  5. response1 = urllib.request.urlopen(url1)#发送请求,只传url说明用post
  6. json_str1 = response1.read()#获取响应数据,微信返回的json数据
  7. respond_dict1 = json.loads(json_str1)
  8. openid = respond_dict1.get("openid")
  9. session_key = respond_dict1.get("session_key")
  10. print(openid)
  11. print(session_key)
  12. return "啥"

然后你就可以获得openid、session_key

session_key不要直接发到服务器外,要加密

session就可以自己去定义了

使用,需要在其他页面的onLoad加上

  1. onLoad: function() {
  2. let app = getApp();
  3. app.onLaunch()
  4. //其他页面要做的事//
  5. },