微信小程序一直保持登陆状态

把标记红色的备注修改即可

JS文件:(可以放在app.js中)

// 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        wx.request({
          url: "http://127.0.0.7/api/Login/login",  //修改请求地址
          data: { code: res.code },
          header: {
            ‘content-type‘: ‘application/json‘
          },
          method: "GET",
          success(res) {
            wx.request({
              url: that.link + "Login/setuser",
              data: {
                openid: res.data.openid
              },
              header: {
                ‘content-type‘: ‘application/json‘
              },
              success(res) {          //如果有该用户,把用户信息放到公共数组中
                if (res.data){
                  that.globalData.userInfo = res.data  //红色的可以更改为别的数组,需要先定义
                }
              },
            })
          },
        })
      }
    })

php文件:(红色标记为申请的小程序后台中,开发中有appid和secret)

/*获取用户唯一标识*/
    public function login(){
        $code=Request::param(‘code‘);
        $url="https://api.weixin.qq.com/sns/jscode2session?appid=wx69b37be5******&secret=b6ed8d48484522da769******&js_code=".$code."&grant_type=authorization_cod";
        $token = json_decode($this->curl_get($url));
        return json($token);
    }
  /*这里是把openid发送过来,查找数据库中有没有该用户信息,如果没有就添加该用户信息,有就读取用户信息*/
    /*是否有用户信息*/
    public function setuser(){
        $data=Request::param();
        $user=User::where(‘account‘,$data[‘openid‘])->find();     if(!$user){       /*以下写需要添加用户信息的逻辑*/     }else{      return json($user);     }
    }/*往微信发送信息,获取唯一标识
        后台调用  避免暴露 信息*/
    function curl_get($url,&$httpCode = 0){
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

        /*不做证书效验,部署在linux环境下请改为true*/
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
        $file_contents = curl_exec($ch);
        $httpCode = curl_getinfo($ch,CURLINFO_HTTP_CODE);
        curl_close($ch);
        return $file_contents;
    }

原文地址:https://www.cnblogs.com/zyfeng/p/12092750.html

时间: 2024-10-16 10:31:42

微信小程序一直保持登陆状态的相关文章

微信小程序—获取用户网络状态和设备的信息

这个是一个简易教程,按照他的步骤下载好了,打开界面看到的效果是如下的: 这个表示没有问题得,那么我们如何获取网络状态呢?比如我到底是处于wifi状态还是2G/3G/4G网络呢? 那我们先分析下,这个hello world咋个来的呢? 打开index页面如下图: 原来是这个变量获取的值,那么这个变量在哪里呢?请见下图,index.js里哈 原来是这里啊,那么我们要在页面显示网络状态,那么我们也定一个变量吧, 这个API文档在这里,这样我们就获取到了网络状态了,而且显示到了前台页面上了,我还获取了设

微信小程序 -进度条- 物流状态-发货-运输-派件-签收

.sec-wrap { width: 100%; ">; height: 180rpx; margin-bottom: 50rpx; display: flex; align-items: center; padding: 0rpx 70rpx; margin-left: -100rpx; } .sec-wrap .exp_box { position: relative; height: 120rpx; margin-left: 100rpx; } .sec-wrap .exp_box

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序日常开发中常遇到的错误代码

在开发过程中,会遇到很多微信返回的状态码,鬼知道代表什么意思,现在好了,整理总结了一份状态码,方便大家. 微信小程序错误码参考 状态码(场景值) 说明  -1 系统繁忙  0 请求成功  40001 验证失败  40002 不合法的凭证类型  40003 不合法的OpenID  40004 不合法的媒体文件类型  40005 不合法的文件类型  40006 不合法的文件大小  40007 不合法的媒体文件id  40008 不合法的消息类型  40009 不合法的图片文件大小  40010 不合

微信小程序--家庭记账本开发--01

微信小程序的开发准备与开发工具的学习 在这次寒假伊始,临近春节,学习进程有所拉下,现在补上.寻找了好多网站的相关学习视频,包括微信公众平台关于小程序这方面也有好多相关资料供查阅. 1.开发准备: 首先进入"微信公众平台"官网( https://mp.weixin.qq.com/ ),进入注册界面,注册自己的微信小程序账号,登陆成功之后,进入自己小程序的后台,获取开发所需的AppID,并点击下载相应的微信Web开发者工具,下载完成后,进行安装. 2.开发工具的学习: 打开微信Web开发者

从session原理出发解决微信小程序的登陆问题

原理知识准备  对于已经熟悉了session原理的同学来说,我们都清楚:在浏览器端我们会存储一个sessionId,用它来作为凭证,在服务器端得到有关本次浏览器与服务器会话的所有信息,这些信息是储存在服务器端的存储空间中的,它完全可以用来判断一个浏览器端的登录状态,因为它是由服务器端来掌控的,是安全的. 那么浏览器端是用什么来存储这个sessionId? 并且浏览器又是如何将sessionId传回给服务器的呢? 大体上是有两种方法的: 1.使用浏览器端实现的cookie功能,每次浏览器都会将服务

[转]微信小程序登录数据解密以及状态维持

本文转自:http://www.cnblogs.com/cheesebar/p/6689326.html 学习过小程序的朋友应该知道,在小程序中是不支持cookie的,借助小程序中的缓存我们也可以存储一些信息,但是对于一些比较重要的信息,我们需要通过登录状态维持来保存,同时,为了安全起见,用户的敏感信息,也是需要加密在网络上传输的. 前台,service.封装了http请求,同时封装了getSession(通过code获取服务器生成的session).getUserInfo(获取用户信息).ge

补充ABP Zero集成微信小程序登陆的BUG修复部分

感谢园友 @turingguo 发布的 https://www.cnblogs.com/turingguo/p/9019026.html  文章,详细介绍了ABP Zero集成微信小程序登陆的实现过程. 经测试,abp的外部登陆有几处bug,在此做记录. 1.xxxxWebHostModule.cs文件 1 public override void PostInitialize() 2 { 3 4 if (!IocManager.Resolve<IMultiTenancyConfig>().I

ABP Zero集成微信小程序登陆

首先是ABPZero的第三方登陆模块,通过调用第三方的登录接口返回用户信息,再交给ABP的登陆验证模块去执行对应的登陆注册. 涉及的数据库表主要是这两个表,AbpUsers存储了用户信息,AbpUserLogins存储了登陆方式,第三方登陆的信息就是存储在这里的 主要是四个字段 LoginProvider ProviderKey TenantId UserId 登陆提供器   用户唯一Id  对应的租户Id和用户Id 首先需要编写一个LoginProvider,代码如下 using System