php登录抓取网页指定内容(后台解密使用的是“auth.code2session”接口,解密用到下载地址 )

优采云 发布时间: 2021-10-24 18:13

  php登录抓取网页指定内容(后台解密使用的是“auth.code2session”接口,解密用到下载地址

)

  第一张图

  

  

  

  

  实施过程:

  1、 授权登录按钮和文字信息放在同一个页面。未授权时显示登录按钮,授权时隐藏登录按钮,显示文字信息。当然,授权和文字可以分成两页。在授权页面的onload中,判断是否已经授权,如果授权则直接跳转到正文页面。这里只说授权按钮和文字在同一个页面的情况。

  2、 在onload中,首先判断是否授权。如果已授权,则隐藏授权登录按钮并显示文本消息。如果没有授权,则显示授权登录按钮。

  3、 前端使用按钮的open-type="getuserinfo"来操作。点击授权按钮后,“e”会携带userinfo,用户的基本信息(与使用wx.getuserinfo接口获取的数据相同,所以我直接在“e”中取,没有调用wx.getuserinfo接口)

  4、使用wx.login接口获取登录凭证码,用密码解密换取openid,发送密码时,将步骤3获取的用户信息发送到后台解密(也可以不带,带的目的)是为了验证签名,所以比较安全,不用验证也可以验证)

  5、后台解密使用“auth.code2session”接口,解密使用的SDK下载地址

  “”。

  5、 后台解密后(后台语言使用php),会返回openid等敏感信息,可以存储信息。

  6、 授权成功后,隐藏授权登录按钮,显示短信。

  7、 如果用户点击拒绝授权,会提示引导用户重新授权。

  注意要考虑授权失败的情况

  下面是详细代码

  xml文件

  

申请获取以下权限

获得你的公开信息(昵称,头像等)

授权登录

请升级微信版本

我的首页内容

  wxss

  

.header {

margin: 90rpx 0 90rpx 50rpx;

border-bottom: 1px solid #ccc;

text-align: center;

width: 650rpx;

height: 300rpx;

line-height: 450rpx;

}

.header image {

width: 200rpx;

height: 200rpx;

}

.content {

margin-left: 50rpx;

margin-bottom: 90rpx;

}

.content text {

display: block;

color: #9d9d9d;

margin-top: 40rpx;

}

.bottom {

border-radius: 80rpx;

margin: 70rpx 50rpx;

font-size: 35rpx;

}

  js

  

// pages/test1/test1.js

var app = getapp();

page({

/**

* 页面的初始数据

*/

data: {

//判断小程序的api,回调,参数,组件等是否在当前版本可用。

caniuse: wx.caniuse('button.open-type.getuserinfo'),

ishide: false

},

/**

* 生命周期函数--*敏*感*词*页面加载

*/

onload: function (options) {

var that = this;

// 查看是否授权

wx.getsetting({

success: function (res) {

if (!res.authsetting['scope.userinfo']) {

// 还未授权,显示授权按钮

that.setdata({

ishide: true

});

} else {

// 已授权,隐藏授权按钮,显示正文

that.setdata({

ishide: false

});

}

}

})

},

//授权登陆按钮

bindgetuserinfo: function (e) {

var that = this;

console.log(e)

if (e.detail.userinfo) {

//用户授权登陆,并跳转首页

// that.getopenid()

wx.login({

success: function (res) {

// 请求自己后台获取用户openid

wx.request({

url: app.domain + 'teacherapi/wx_decode/wxdecode',

method: 'post',

header: { 'content-type': 'application/x-www-form-urlencoded' },

data: {

encrypteddata: e.detail.encrypteddata,

signature: e.detail.signature,

rawdata: e.detail.rawdata,

iv: e.detail.iv,

code: res.code

},

success: function (res_user) {

if (res_user.data.status == 0) {

var data = json.parse(res_user.data.msg)    //json转对象

//授权成功返回的数据,根据自己需求操作

console.log(data)

//授权成功后,隐藏授权按钮,显示正文

that.setdata({

ishide: false

});

}

}, fail: function () {

that.showmodal('获取授权信息失败')

}

})

}

})

} else {

//用户按了拒绝授权按钮,提示引导授权

that.showmodal('请授权后使用小程序')

}

},

//未授权弹窗

showmodal: function (e) {

wx.showmodal({

title: '提示',

content: e,

showcancel: false,

confirmtext: '返回授权',

success: function (res) {

if (res.confirm) {

console.log('用户点击了“返回授权”')

}

}

})

},

})

  php

<p>

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线