微信小程序+PHP 授权登录
小程序页面代码
<!--pages/wxlogin/wxlogin.wxml-->
<button bindtap="wxlogin">微信授权登录</button>
小程序js代码
// pages/wxlogin/wxlogin.js
Page({/*** 页面的初始数据*/data: {},//点击授权登录调用函数wxlogin:function(){//获取用户名wx.getUserProfile({desc: 'desc',success(res){let username=res.userInfo.nickName//获取codewx.login({success(ress){let code=ress.code//发送请求wx.request({url: 'http://www.hejialing.com/week3/wx_login',//把获取到的用户名和code发送过去data:{username:username,code:code},dataType:'json',success(res_json){//返回的json数据如果登录200就登录成功if(res_json.data.code==200){// 登录成功后把openid缓存起来,下次登录判断缓存openid是否存在,存在直接跳转不用登录wx.setStorageSync('openid',res_json.data.data )//缓存后页面跳转wx.navigateTo({url: '/pages/goods/goods',})}}})}})}})},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {//页面加载的时候执行//页面加载的时候把缓存openid取出来如果有值就证明登录过,就可以直接跳转let openid=wx.getStorageInfoSync('openid');if(openid){ wx.navigateTo({url: '/pages/goods/goods',}) }},/*** 生命周期函数--监听页面初次渲染完成*/onReady: function () {},/*** 生命周期函数--监听页面显示*/onShow: function () {},/*** 生命周期函数--监听页面隐藏*/onHide: function () {},/*** 生命周期函数--监听页面卸载*/onUnload: function () {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh: function () {},/*** 页面上拉触底事件的处理函数*/onReachBottom: function () {},/*** 用户点击右上角分享*/onShareAppMessage: function () {}
})
thinkphp6 控制器代码
public function wx_login(Request $request){
// 小程序函数wx.getUserProfile({})获取的用户名$username=$request->param('username');//小程序函数wx.login({})获取的code (code只能用一次,用完就失效,需要重新获取)$code=$request->param('code');//小程序ID$appid='wxe7d7c7398c59fefd';//小程序秘钥$AppSecret='ab2d2218fb5d721db1c9ce910899e841';$url="https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$AppSecret&js_code=$code&grant_type=authorization_code";$data=json_decode(file_get_contents($url),true);//file_get_contents这个代码是执行$url json_decode转换数据格式$login_data=array(['username'=>$username,'openid'=>$data['openid'],'session_key'=>$data['session_key'],]);//实例化模型$obj=new wxLogin();///通过上面执行后返回的data数据里openid查询数据表里是否有openid$sele_data=$obj->select_loginData($data['openid']);
// 如果有登录成功if($sele_data){return json(['code'=>200,'mes'=>'登录成功','data'=>$data['openid']]);}else{//如果没有就添加这个数据 后返回注册成功$obj->insert_user($login_data);return json(['code'=>200,'mes'=>'注册成功','data'=>$data['openid']]);}}
模型代码
class wxLogin extends Model
{protected $table='wxLogin';public function select_loginData($openid){return $this->where('openid',$openid)->find();}public function insert_user($data){return $this->insert($data);}
}
微信小程序+PHP 授权登录相关推荐
- 微信小程序之授权登录
微信小程序之授权登录 之前微信授权登录时是直接可以通过getUserInfo接口 弹出授权弹窗.由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通 ...
- 微信登录 后台 java_Java 后端 (Spring boot)+微信小程序的授权登录
微信小程序的授权登录 第一.Java后端代码如下 登录的接口的参数是微信小程序前端必须要传的参数微信小程序登录.授权的用户基本信息 wx.getUserInfo 特别注意 appid 和secret. ...
- 微信小程序之授权登录(附完整源码)
个人博客上已经同步更新了文章,有目录索引,阅读起来比较方便,欢迎大家移步个人博客上读阅~ 个人博客地址:http://zwd596257180.gitee.io/blog/2019/04/15/wec ...
- 微信小程序之授权登录--项目需要
1.由于项目需要,需要实现自己的微信小程序 用微信授权登录. 2.参考此项目https://blog.csdn.net/weidong_y/article/details/79636386 3.其中的 ...
- 企业微信小程序_授权登录接口获取用户userid
文章目录 一.前置知识 1. 阅读 企业微信小程序开发文档 2. 企业微信小程序登录流程 3. 微信小程序区别 二.前端部分 2.1. 调用登录接口 2.2. 请求后端接口 2.3. 项目源码 三.后 ...
- 微信小程序手机号授权登录
文章目录 小程序端 服务端 注意事项 微信小程序,手机号授权登录需求. 大体流程是这样的: 小程序端使用 getPhoneNumber 向微信平台获取授权 通过微信授权后,小程序端接收微信授权后的回调 ...
- 微信小程序的授权登录功能
注意:首先微信小程序是不能一进入小程序就让用户授权登录的,一进入小程序就让用户授权登录,是审核不通过的: 图一的这个提示框是我自己写的:要想弹出微信的微信授权提示框,必须用一个按钮来触发,可用授权登录 ...
- 【Springboot】整合wxjava实现 微信小程序:授权登录
文章目录 一.wxjava是什么 二.使用步骤 1.引入依赖 2.配置yml 3.小程序的配置 4.后端的业务逻辑代码 controller service impl dto 5.前端的业务逻辑代码 ...
- 微信小程序手机号+授权登录
wxml页面 <view class="input-container"><view class="input-button-container row ...
最新文章
- 任正非:要感谢特朗普,他一吓唬,治好了华为人的富裕病,都努力工作了
- 在Linux上使用图形界面的GitHub Desktop
- qt+vs2017环境下XIMEA相机库的配置
- mysql 安全扫描_MySQL 安全和监控 - Can't Wait Any Longer - OSCHINA - 中文开源技术交流社区...
- Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析
- thinkphp scws mysql_thinkphp buildHtml 函数实现网站静态化
- 一个题目涉及到的50个Sql语句
- 51单片机基础入门教程(精华版)文末有惊喜
- 社交网络和物联网技术,拓展了数据采集技术渠道
- 如何将经典算法与人工智能结合?NeurIPS 2021
- html颜色(背景,字体等)
- 使用 maven 打包 src/test/java下的文件,并用 java jar 跑打包出来的jar
- java同一秒请求多次接口_java – 限制用户每秒发出有限的请求
- python余弦相似度_推荐系统01--余弦相似度
- Java数组实现:一群人围成一圈从123报数 如果报到3就退出该圈中 直到最后一个人留下来!问其位置
- python爬取喜马拉雅收费_python 爬取喜马拉雅节目生成RSS Feed
- scrapy-redis中的指纹,去重的方式
- Django修改mysql连接密码的一个坑
- SOLIDWORKS常见十大问题解答
- 网友大宝(sodme)的来信