2019独角兽企业重金招聘Python工程师标准>>>

1. 后台开发环境:

语言:java

框架:springboot

2. 代码示例:

package com.zc.wechat.web;import com.zc.common.api.util.Result;
import com.zc.wechat.model.Token;
import com.zc.wechat.model.app.Jscode2sessionResult;
import com.zc.wechat.service.WechatAppService;
import com.zc.wechat.service.WechatServerService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;import java.io.IOException;@Controller
@RequestMapping("/wechat")
public class WechatController {@Value("${wechat.appid}")private String appid;@Autowiredprivate WechatServerService wechatServerService;@Autowiredprivate WechatAppService wechatAppService;/*** 获取登录系统的token** @return*/@RequestMapping(value = "/user/getToken", method = {RequestMethod.GET})@ResponseBodypublic Result<Token> getToken(@RequestParam(value = "code") String code) throws IOException {final String appId = appid;Jscode2sessionResult openidResult = wechatAppService.getJscode2session(appId, code, "authorization_code");Result<Token> result = new Result();Token token = wechatServerService.getTokenByOpenid(openidResult.getOpenid());result.setResult(token);return result;}@RequestMapping(value = "/user/bind", method = {RequestMethod.POST})@ResponseBodypublic Result<Token> bindUser(@RequestParam(value = "userName") String userName,@RequestParam(value = "password") String password,@RequestParam(value = "state", required = false) String state,@RequestParam(value = "code") String code) {Result<Token> result = new Result();if(!wechatServerService.checkUser(userName, password)){result.setStatus(Result.STATUS_FAIL);return result;}final String appId = appid;Jscode2sessionResult openidResult = wechatAppService.getJscode2session(appId, code, "authorization_code");String openid= openidResult.getOpenid();if(StringUtils.isEmpty(openid)){result.setStatus(Result.STATUS_FAIL);return result;}if(!wechatServerService.bindUser(userName, openid)){result.setStatus(Result.STATUS_FAIL);return result;}result.setResult(wechatServerService.getTokenByOpenid(openid));return result;}
}

说明:bindUser方法获取从小程序端传过来的参数,其中userName和password是自身系统的用户名密码,code是上一篇帖子里提到的微信小程序的code,通过微信的API接口拿到openid,和自身的系统进行绑定。getToken方法是获取auth2的用户token,以后用户进入小程序后,去拿token,没有的话跳转到绑定页面。用户的其他请求都要带上token,这样就能判断登录用户了。

转载于:https://my.oschina.net/u/3337958/blog/1618405

从零开始开发微信小程序(四):微信小程序绑定系统账号并授权登录之后台端...相关推荐

  1. 《小程序》微信小程序绑定系统账号并授权登录之微信端

    小程序登录 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系 登录流程时序 说明 调用 wx.login() 获取 临时登录凭证code ,并回传到开发 ...

  2. 微信小程序从零开始开发步骤(二)创建小程序页面

    上一章注册完小程序,添加新建的项目,大致的准备开发已经完成,本章要分享的是 要创建一个简单的页面了,创建小程序页面的具体几个步骤: 1. 在pages 中添加一个目录 选中page,右击鼠标,从硬盘打 ...

  3. 支付宝小程序授权登录 (Java 后台篇)

    支付宝小程序授权登录 (Java 后台篇) 开始 : 实现支付宝小程序授权登录功能, 本文主要是介绍支付宝小程序授权登录流程,与关键登录与处理代码. 流程 : 关键代码 : 1.获取用户信息 /*** ...

  4. 小程序(四):微信登录功能的实现+云开发数据库

    目录 好文推荐: 完整代码gitee仓库查看:https://gitee.com/CMD-UROOT/xzyy.git 一.微信登录 1.点击按钮(或其他),获取用户信息(昵称.头像等). 2.通过微 ...

  5. python从0开始学编程第四天第3讲_从零开始学习PYTHON3讲义(四)让程序更友好

    <从零开始PYTHON3>第四讲 先看看上一讲的练习答案. 程序完成的是功能,功能来自于"程序需求"("需求"这个词忘记了什么意思的去复习一下第二讲 ...

  6. 微信网页授权登录java后台实现

    建议先阅读微信开发-网页授权登录官方文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_au ...

  7. 微信公众号授权登录vue移动端项目

    1. 在需要授权登录的页面中 if (this.$route.query.uuid) {this.wxOpenId = this.$route.query.uuid;};let isWeixin = ...

  8. Windows 8 Directx 开发学习笔记(四)示例程序小结

    VS2012的示例程序包括了最基本的DirectX流程,涉及许多知识,所以看完代码之后还是感觉没有头绪,打算对整个过程再整理一下,方便进一步的学习. 正方体在空间中可以用它的8个顶点定义,而每个顶点可 ...

  9. 小米手机微信无法连接到服务器1-1,小米1S系统版本低不能登录微信解决办法

    微信更新以后,不在支持小米1了,新版本的微信不能安装,老版本的微信不能登录,提示版本过低.啊啊啊,抓狂.只所以新版本的微信不能安装是因为,小米1的安卓系统版本是4.1的,系统安卓版本太老了,如今都安卓 ...

最新文章

  1. 截断句子取前k个单词
  2. 年薪75万的真实技术面试实践攻略(篇章二)
  3. 【 MATLAB 】离散傅里叶级数(DFS)及 IDFS 的 MATLAB 实现
  4. JS对象和JSON字符串相互转化总结
  5. java对象复制到另一个对象中_spring: beanutils.copyproperties将一个对象的数据塞入到另一个对象中(合并对象)...
  6. CentOS7安装Docker与使用篇
  7. CSS强制按比例缩小图片
  8. java自学报告_Vi,Java,Ant和Junit自学报告
  9. 走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型
  10. linux装服务器系统,linux服务器系统安装
  11. 程序员必须掌握的 12 个 JavaScript 技能!
  12. Android 记忆卡片游戏 记忆力 Android游戏 Android记忆卡片游戏源代码
  13. 关于部分网页打不开的解决方法详解
  14. 第二章 复杂的HTML解析(上)
  15. 因果系列文章(1):因果推断及相关论文
  16. Python——连接数据库操作
  17. GitLab-CI持续集成(CI)的介绍与运行机制
  18. Java中的Swing概述
  19. 大家玩突袭2吗?呵呵我有秘籍哟!
  20. 软件开发过程的五个阶段

热门文章

  1. 英语英文理论驾考宝典 驾照考试题库软件
  2. 安邦金融:99%的人都不知道,原来保险还可以这样配置
  3. 微软沈向洋,百度李彦宏、王海峰,阿里王坚均候选中国工程院院士
  4. Poky环境的中文输入法实验二(XIM版本)
  5. iOS安全攻防(二十):越狱检测的攻与防
  6. PCB中邮票孔的用处以及常用设置
  7. html 的页眉页脚,html – 带滚动条的页眉,页脚和内容的CSS布局
  8. Python数据可视化第 8 讲:matplotlib饼图绘制函数pie
  9. 理财入门书-小狗钱钱 -读书笔记
  10. ipynb文件过大打开浏览器崩溃解决方法