主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
登录:
如果要实现小程序的登录,不妨在打开小程序的时候尝试完成登录。也就是说,我们可以将小程序登录代码添加到app.js中的onlaunch方法中
如下所示:
//微信登录方法wx . log in({ success:RES = >;{//成功登录后,会返回微信提供的一个代码,用于使用console . log( ;代码 RES . code);//发送请求wx . request({ URL:this . global data . URL+ # 39;登录/ # 39;,数据:{ code:res.code },表头:{ content -type ;: 应用程序/JSON ;},方法: 帖子 ,success:function(e){ console . log(e)//请求成功后,会返回一个自己后端生成的令牌用于其他操作的验证,并将令牌保存在本地wx . setstoragesync( ;令牌 ,e.data.data.token)} }) //发送res.code到后台换取openId,sessionKey,unionId}})后端代码:
from rest _ framework . views import API view from rest _ framework . response import response from app 01 . Wx import Wx _ log in from django . core . cache import cache from m app 01 import model import time import hashlibclass log in(API view):def post(self,request):param = request . data if param . get( ;代码 ):#Wx_login是微信提供的登录方式。这里的数据已经有了session_key和OpenID data = wx _ log in . log in(param . get(" code ;))如果数据:# 1 session_key+ timest等到一个键。(MD5 MD5 = hashlib . MD5()MD5 . update(data . get(" session _ key ;).编码( utf8 ))md5.update(str(time.time())。编码( utf8 ))key = MD5 . hex digest()# 2 session _ key与openid绑定,直到val val = data . get( ;会话密钥 )+' '+data . get( ;openid )# 3 key - gt;Val to redis,cache.set(key,val) #4将openid保存到数据库user _ data = models . wx user . objects . filter(OpenID = data . get(" OpenID ;)).first() if not user_data: models。wx user . objects . create(OpenID = data . get( ;openid )#5返回小程序返回响应的密钥({ 代码 :200, 味精 : suc , 数据 :{ 令牌 :key}}) else:返回响应({ 代码 :202, 味精 : 无效代码" }) else:返回响应({ 代码 :201, 味精 : 参数“缺失})Wx_login
导入请求# appid = { } 秘密= { } Js _ code = {} fromapp01.wx导入设置def登录(code): # code2session是wx提供的url,填写你的appid和appsecret,前端发送的codeurl = settings . code 2 session . format(settings . appid,settings.appsecret,code)response = requests . get(URL = URL)#。获得的数据包含session_key和openid。data = reponse . JSON()print(data)if data . get( ;会话密钥 ):返回数据否则:返回else设置
你注册的小程序的# appid和appsecret,code2Session官方提供。Pay_mchid是店号,需要工商证明才能办理,我自己办不了。AppId = wx 69 a 0 DC a5c 6 b 02 a 43 ;AppSecret = 9d0f 80642 f 4861 b 53 df 04 a2 f 7 BD 65 a 59 ;code2Session = https://api.weixin.qq.com/sns/jscode2session? appid = { } ;秘密= { } js _ code = { } grant _ type = authorization _ code pay _ mchid = # 391415981402'pay _ apikey = # 39Xi 34 nu 5 jn 7 x 2 uu JD 8 u 4 jii JD 2 u 5d 6j 8 e # 39;这就完成了登录。
批准
Html只是一个按钮加一个点击事件,我就不写了,主要看点击事件做什么。
Luying: function () {//该方法的作用是获取配置,查看所有权限wx.getSetting({ //获取成功后,输入success(RES){ console . log( ;res ,RES . auth setting[ # 39;scope.record # 39]//authsetting是该权限的列表。这句话是看有没有这个权限记录如果(!RES . auth setting[ # 39;scope.record # 39]{//没有权限就拿这句话。这个方法的作用是获取权限wx.authorize({ //固定写权限是范围比如scope . XXX: # 39;scope.record # 39,success() {//用户已经同意使用小程序的录音功能。后续调用wx.startRecord接口不会弹出并要求wx.startrecord ()}。//上述访问权限在失败前已经被调用过。如果没有得到许可,将采取这种方法。fail(){ console . log( ;未授权")}}}} else {//wx.startrecord ()}}},(学习视频分享:php视频教程)
访问用户信息
因为用户信息可能会带来一些敏感信息,比如session_key或者openid等。,如果你想在前端获取信息,你必须得到许可。
注意,这种方法是错误的。
lt按钮绑定:tap = 信息 gt用户</button gt;它必须这样写,这样当你得到请求时,你就会把一些关键的东西传递到click事件中。
lt按钮打开-type = ;getUserInfo bindgetuserinfo = info1 gt获取用户信函
info1:函数(res) { console.log(res, button ")//wx . get userinfo({//success:function(RES){//console . log(RES, user ")//}/})var that = This//该方法用于查看您的session_key是否已过期wx . check session({ success(){//session _ key未过期)和wx . request({ URL:app . global data . URL+" userinfo/ ;,数据:{//这个东西就是用户信息,包含敏感信息。单击该按钮时出现的是加密数据:res.detail.encrypted。//同上,也是你点击时传入的iv: res.detail.iv,//成功登录后返回的token取token:wx . getstoragesync( ;令牌 )},头:{ content -type ;: 应用程序/JSON ;},方法: 帖子 ,success:function(e){ console . log(e)} },fail () {//session _ key已过期,需要重新执行登录过程wx.login() //再次登录}}}相关推荐:小程序开发教程。以上是如何实现小程序登录和授权的细节。更多请关注主机参考其他相关文章!
这几篇文章你可能也喜欢:
- 了解微信小程序登录的前端设计和实现(微信小程序登录后端)
- 如何实现小程序的登录和授权(微信小程序登录授权流程)
- 如何解决帝国cms后台无法登录的问题(帝国cms移动终端)
- WordPress登录失败?这五个步骤帮你解决!(wordpress登录门户)
- WordPress后台登录难?试试这些有效的方法吧!
本文由主机参考刊发,转载请注明:如何实现小程序的登录和授权(如何授权小程序的登录) https://zhujicankao.com/79796.html
评论前必须登录!
注册