微信小程序全栈(一).通过授权登录解密获取用户的openid和unionid

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

    最近做一个微信小程序,有个功能需要甲触发A事件然后B收到甲的消息。毫无疑问就是要获取openid存下来与用户绑定了。然后可能有公众号对接进来,于是还是要求一个unionid。这就不可避免要涉及一个获取流程。

   本来我以为是小程序端简简单单获取一下腾讯的接口直接就返回回数据了,后来去官方文档看了一下是前端把密文,偏移量,code发给后台,后台通过腾讯接口发送自己的AppId,AppSecret和认证类型获取一个json对象,再用这个json对象解析出session_key,即会话密钥,从而通过和密文,偏移量解密得出用户的信息放到hashmap里面再进行自己的业务。

wxml文件

<!--pages/authorize/index.wxml-->
<view class="container">
<form bindsubmit="bindSave">
<view style='width:100%;padding-left:30rpx;font-size: 28rpx;margin-top:30rpx;'>1.同意当前小程序获得我的微信头像;</view>
<view style='width:100%;padding-left:30rpx;font-size: 28rpx;margin-top:30rpx;'>2.同意当前小程序获取我的微信昵称等其他信息;</view>
<button open-type="getUserInfo" bindgetuserinfo="login" class="weui-button">授权并登录</button>
</form>
<!-- <view class="logged" >
<image class="logged-icon" src="../../images/"/>
<view class="logged-text">近期你已经授权登陆过{
  
  {title}}</view>
<view class="logged-text">自动登录中</view>
</view> -->
</view>

wxss文件

/* pages/authorize/index.wxss */
page{
  height: 100%;
}

.container{
  background-color: #f5f5f9;
  justify-content: initial;
}

.form-box{
  width: 100%;
  background-color: #fff;
  margin-top: 20rpx;
}
.row-wrap{
    width: 720rpx;
    height: 88rpx;
    line-height: 88rpx;
    margin-left: 30rpx;
    border-bottom: 1rpx solid #eee;
    display: flex;
    font-size: 28rpx;
    /*justify-content: space-between;*/
}
.row-wrap .label{
    width: 160rpx;
    color: #000
}
.row-wrap .label-right{
    flex: 1;
    height: 88rpx;
    line-height: 88rpx;
}
.row-wrap .label-right input{
    height: 100%;
    font-size: 28rpx;
    padding-right: 30rpx;
}
.row-wrap .right-box{
    margin-right: 30rpx; 
}
.arrow-right{
    width: 15rpx;
    height: 24rpx;
}
.save-btn,
.cancel-btn{
    width: 690rpx;
    height: 80rpx;
    line-height: 80rpx;
    text-align: center;
    margin-top:30rpx; 
    border-radius: 6rpx;
    box-sizing: border-box;
}
.save-btn{
    background-color: #e64340;
    color:#fff;
}
button[type="default"]{
    background-color: #ffffff;
    color:#000;
}
.addr-details{
    height: auto;
    padding: 30rpx 0;
    margin-left:30rpx;
    border-bottom: 1rpx solid #eee;
    display: flex;
    font-size: 28rpx;
}
.addr-details .label{
    margin:auto 0 auto 0;
    width: 160rpx;
    color: #000
}
.addr-details textarea{
    box-sizing: border-box;
    width: 480rpx;
    overflow: scroll;
}
picker {
    min-width: 20rpx;
    height: 100%;
    margin-right: 20rpx;
}
.hui{
    color: #777;
}
.logged {
  margin-top: 100px;
}

.logged .logged-icon {
  display: block;
微信小程序openid加密解密 阅读详情

相关推荐

聊聊微信小程序开发中的appid、openidunionid

文章目录appid定义获取途径用途openid定义获取途径用途unionid定义获取途径用途小程序登录流程 最近在开发中涉及到了与小程序的交互需求,所以自己想梳理下这儿的关系,本文主要讲解appid、openidunionid的定义、获取途径、以及用途。 appid 定义 小程序唯凭证,即 AppID,每个小程序都有自己的个appid 获取途径 可在「微信公众平台 - 设置 - 开发设置」...

shenzhou_yh的博客 1万+

微信小程序获得session_keyopenId(加解密、签名系列)

1:session_keyopenId是什么?session_key   官方说明为: session_key是微信服务器生成的针对用户数据进行加密签名的密钥 session_key的用途 (1)对wx.getUserInfo()接口得到“用户信息中的密文”进行解密。 (2)对它“稍作处理”,用作维护小程序的登录态。 “稍微处理”大体为: (1)生成个随机数(官方把他叫做3rd_session) (2)把这个随机数当session的key,session_key + openid为value。 即:session[3rd_session]=session_key+openid   open

微信小程序授权登录解密unionId出错

微信授权登录流程 第步:wx.login获取 用户临时登录凭证code 第二步:wx.getUserInfo获取加密过的数据encryptedData解密参数iv 第三步:把步骤、二中的code、encryptedData、iv传到开发者自己服务端 第三步:服务端获取到code、encryptedData、iv之后用get方法请求如下微信接口 https://api.weixin.qq.co...

allen_csdns的博客 1841

小程序解密openid

小程序app.js: //app.js App({ requestSite: 'https://group.huoyuntong.top', session: { data: null, status: 0, readyHandle: { length: 0 }, init...

小诸葛的博客 1913

微信小程序中的用户ID(包括openidunionid)

最近在做微信小程序的开发,以前小程序这块接触的不多,所以就想把在项目中每步遇到的问题总结下来。 开始做的时候,这个openId肯定是要打交道的。那下面我们来看openId到底是怎么回事吧。 做过微信开发的同学,多多少少都会涉及到用户的唯标识的问题。由于微信牢牢把控着用户的信息,因此当你需要在微信平台中获取用户的标示信息,必然要通过微信的平台接口来获取(其实这个openId是来区分用户...

时清云的博客 1万+

小程序Openid 获取,服务器 encryptedData 解密 遇到的坑

获取客户 openId unionId 需要以下步骤(都为必须步骤) 1.从验证从客户端传上来code, 获取sessionKey (需要配合小程序appid ,secret 发送到微信服务器) $params = [ 'appid' => $this->appid, 'secret' => $this->secret, 'js_code...

weixin_30730053的博客 1055

pc端微信小程序包wxapkg文件解密,nodejs版本。.zip

pc端微信小程序包wxapkg文件解密,nodejs版本。.zip

微信小程序获取各类信息(openid、session_key以及用户基本信息、解密unionId、手机号)及登录机制

微信小程序获取openid、session_key以及解密unionId、手机号的目录1、了解小程序启动时的文件加载顺序2、了解小程序自身的API3、发起网络请求与弹窗4、获取openid、session_key5、解密unionId6、解密手机号7、获取用户基本信息 1、了解小程序启动时的文件加载顺序    在小程序编译启动时:      先加载app.json中的些变量定义      再执...

Chengqb的博客 3万+

HBuilderX(uniapp)实现微信小程序获取用户头像、昵称、授权登录获取用户手机号

微信文档写的零零散散的,网上搜的教程,23年的教程还在教22年改版之前的东西,导致踩坑无数,所以自己写下文档记录下,帮助后来者,记录于2024.11.14.获取用户头像昵称首先阅读微信小程序官方文档,wx.getUserInfo接口。

monkeier的博客 1万+

小程序:授权登录、session_key、unionId

微信应用的个很大的优势就在于使用过程中是不需要进行注册显式登录的,大部分问题基本上可以键解决。但是在授权登录获取用户信息的过程中都发生了哪些事情,今天我们就来讨论下。这篇文章主要分析以下几个问题:授权登录的意义session key 的作用unionId 的作用,有哪些获取途径在应用中如何保存用户登录态1. 授权登录的意义首先必须要明白,授权登录实际上是两个操作。1.1 授权 那...

少东的博客 9万+

微信小程序加密及解密

这是个java解密小程序的个例子,希望可以帮到大家。

微信小程序java登录授权解密获取unionId

微信小程序java登录授权解密获取unionId(填坑) 2018年08月03日 16:00:18 人类电影精华丶 阅读数 4041 官方流程图: 第步:获取code 说明: 小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。 开发者服务器以code换取 用户标识openid 会话密钥session_key。 之后开发者服务器可以根据用户标识来生成自定义...

sj498541071的博客 2391

SpringBoot微信小程序解密获取unionId(JAVA)

如果该用户登录过小程序或者登陆过tong同平台下的小程序,可以直接根据openid获取微信用户标识unionId 代码如下 @ApiOperation(value = "获取UnionID") @PostMapping(value = "/getUnionID") public SuccessOutPut&lt;AppOutPut&gt; getUnionID(@Request...

Ais永恒 2436

微信小程序登录获取openidunionid

微信官方文档·小程序: UnionID机制说明 如果开发者拥有多个移动应用、网站应用、公众帐号(包括小程序),可通过 UnionID 来区分用户的唯性,因为只要是同微信开放平台帐号下的移动应用、网站应用公众帐号(包括小程序),用户UnionID 是唯的。换句话说,同用户,对同微信开放平台下的不同应用,unionid是相同的。 UnionID获取途径 绑定了开发者帐号的...

D_Energy的博客 1469

微信小程序获取解密用户数据(获取 openIdunionId

前言 微信小程序API文档:mp.weixin.qq.com/debug/wxado… 在实际的小程序开发中,往往需要用户授权登陆并获取用户的数据,快速对接用户系统。 openId : 用户在当前小程序的唯标识 unionId : 如果开发者拥有多个移动应用、网站应用、公众帐号(包括小程序),可通过unionid来区分用户的唯性,因为只要是同微信开放平台帐号下的移动应用、网站应用公众帐...

xiao190128的专栏 2995

微信小程序微信授权登入及授权的流程讲解

通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯标识(openid)、微信开放平台账号下的唯标识(unionid,若当前小程序已绑定到微信开放平台账号)及本次登录的会话密钥(session_key)等。在用户授权登录后,小程序可以通过调用微信登录接口获取用户的code。unionid是在用户绑定同微信开放平台账号下的多个应用时,用来唯标识用户个字符串。该方法对于用户的体验及安性问题有所欠缺,点击就直接获取到了用户的信息,进行了个显示,这个方法官方已经不推荐了。

liaozhixiangjava的博客 8654

微信小程序获取解密用户数据(获取openIdunionId

微信小程序API文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html 在实际的小程序开发中,往往需要用户授权登陆并获取用户的数据,快速对接用户系统。 openId : 用户在当前小程序的唯标识 unionId : 如果开发者拥有多个移动应用、网站应用、公众帐号(包括小程序),可通过unionid来区分用户的唯性,因为只...

前端小狮的博客 3851

微信小程序登录获取用户ID(openidunionid)

微信小程序登录获取用户ID(openidunionid) 、前端开发操作: 1、配置电脑的hosts 文件 具体操作流程地址:https://jingyan.baidu.com/article/425e69e6e479a2be15fc16e1.html 2、配置如下: 添加内容: 127.0.0.1 www.yanxiaoxiao.com 192.168.3.12 ...

weixin_45527865的博客 4501

PHP(thinkphp)微信小程序获取openidunionid

前提条件 1\保证小程序绑定在微信开发平台(不是微信公众号平台) 步骤 1\网上下载微信官方提供的PHP的demo,会有3个文件: 2\在微信小程序通过用户授权获得code,iv,encryptedData /** * 授权登录 */ authorLogin: function(e) { //这里就可以获取用户的基本信息了 let _this = this; consol...

abchuangyoucheng的博客 1778
上一篇: PAT甲级1140,1144解题报告
下一篇: PAT甲级1125解题报告
Tate_Brown
博客等级 码龄9年 39粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值