小程式登入和授權

2022-03-11 06:37:48 字數 2260 閱讀 9999

wx.login(,

header:,

method:"post",

success:function(e)

})// 傳送 res.code 到後台換取 openid, sessionkey, unionid}})

後端**

from rest_framework.views import apiview

from rest_framework.response import response

from django.core.cache import cache

import time

import hashlib

class login(apiview):

def post(self,request):

param = request.data

if param.get("code"):

data=wx_login.login(param.get("code"))

if data:

# 1 session_key+時間戳等到乙個key.(md5

md5=hashlib.md5()

md5.update(data.get("session_key").encode("utf8"))

md5.update(str(time.time()).encode("utf8"))

key=md5.hexdigest()

#2 session_key與openid做繫結等到val

val=data.get("session_key")+'&'+data.get("openid")

#3key->val存到redis,

cache.set(key,val)

#4把openid存到資料庫

user_data=models.wxuser.objects.filter(openid=data.get("openid")).first()

if not user_data:

models.wxuser.objects.create(openid=data.get("openid"))

#5把key返回給小程式

return response(})

else:

return response()

else:

return response()

wx_login

import requests

def login(code):

reponse=requests.get(url=url)

#得到的data裡面有session_key和openid。

data=reponse.json()

print(data)

if data.get("session_key"):

return data

else:

return false

settings

pay_mchid ='1415981402'

pay_apikey = 'xi34nu5jn7x2uujd8u4jiijd2u5d6j8e'

這樣登入就完成了

html就是乙個按鈕加乙個點選事件,就不寫了,主要看點選事件做了什麼

luying: function () ,

//在失敗前就已經呼叫了上面的獲取許可權,如果沒有給許可權的話,就會走這個方法。

fail()

})} else }})

},

獲取使用者資訊的許可權

因為使用者資訊可能會帶一些敏感資訊,比如說session_key或者openid等等,在前端想要獲取資訊的話,就必須請求許可權。

需要注意,這種方式是錯誤的

使用者資訊
必須要這樣寫才行,才行,這樣,在獲取請求的同時,會把一些關鍵的東西傳進點選事件裡。

獲取使用者信
js

info1: function (res) 

// })

var that = this

//這個方法是用來看你session_key有沒有過期的

wx.checksession(,

header: ,

method: "post",

success: function (e)

})},

fail()

})}

微信小程式登入和授權

登入和授權的說明 登入和授權完全沒有關係 注意使用者資訊授權 服務端解密使用者授權資料 手機號授權 注意事項 在 中呼叫wx.login登入,可能會重新整理登入態。此時伺服器使用code換取的sessionkey不是加密時使用的sessionkey,導致解密失敗。建議開發者提前進行login 或者在...

小程式授權登入流程

primary open type getuserinfo bindgetuserinfo getuserinfo bindgetuserinfo 函式 事件內的引數就是使用者授權後的資訊 獲取使用者資訊按鈕的事件 getuserinfo event event detail 2 獲取code 主要...

微信小程式授權登入

在這裡插入描述 前端部分 編寫自己的介面login.wxml login.js 獲取應用例項 page 生命週期函式 監聽頁面載入 onload function options 登入 dologin function e 後端部分 後端運用的是springboot框架 專案結構 官方教程 官方流程...