微信小程序登陆(全流程-前后端)

article/2025/10/14 9:36:08

环境要求

1.注册一个小程序

2.微信开发者工具

3.idea(springboot)

目录

项目准备

用户登陆

前端开发,传递code

index.wxss

index.js

后端编写,调用微信接口,获取openId

现在用户的所有信息都拿不到,只能用户自己填写


其实微信前端是可以直接请求获取openId的,但是会暴露你的key和secret

流程:前端获取code->后端调用微信接口->返回openid给前端


项目准备

1.打开微信开发工具,点击添加

2.创建小程序

  • 修改项目名称
  • 更换目录
  • 选择从网页创建好的小程序AppId
  • 选择不使用云服务
  • 模板选择基础
  • 使用javaScript的基础模板

用户登陆

前端开发,传递code

首先画一个登陆按钮

index.wxml 

<view class="test_view"><view class="title">前后端请求-响应测试</view><view><button bindtap="clickLogin">登陆</button></view></view>

index.wxss

.test_view .title{font-weight: bold;font-size: 18px;color: #5F687E;text-align: center;margin-bottom: 10px;}.test_view button{background-color: palegoldenrod;}

index.js

// index.js
// 获取应用实例
const app = getApp()Page({// data: {//  user_name:"小王"// },clickLogin:function(){wx.login({success (res) {console.log("js_code",res.code)if (res.code) {//发起网络请求wx.request({url: 'http://localhost:8087/user/getWxInfoTest',method: 'post',data: {code: res.code}})} else {console.log('登录失败!' + res.errMsg)}}})}
})

后端编写,调用微信接口,获取openId

获取openId需要3个参数,appid,code,secret。

登录 微信公众平台 =>开发管理=>开发设置=>开发者Id

appId

AppSecret

其中的HttpUtils参考我的这篇

httpUtils(怕大家还要去我的博客里找,这里给懒的同学~准备了一份直接复制就可以用的)

package com.example.tx_mini_pro.tools;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class HttpUtils {public static String getRequest(String httpurl) {HttpURLConnection connection = null;InputStream is = null;BufferedReader br = null;String result = null;// 返回结果字符串try {// 创建远程url连接对象URL url = new URL(httpurl);// 通过远程url连接对象打开一个连接,强转成httpURLConnection类connection = (HttpURLConnection) url.openConnection();// 设置连接方式:getconnection.setRequestMethod("GET");// 设置连接主机服务器的超时时间:15000毫秒connection.setConnectTimeout(15000);// 设置读取远程返回的数据时间:60000毫秒connection.setReadTimeout(60000);// 发送请求connection.connect();// 通过connection连接,获取输入流if (connection.getResponseCode() == 200) {is = connection.getInputStream();// 封装输入流is,并指定字符集br = new BufferedReader(new InputStreamReader(is, "UTF-8"));// 存放数据StringBuffer sbf = new StringBuffer();String temp = null;while ((temp = br.readLine()) != null) {sbf.append(temp);sbf.append("\r\n");}result = sbf.toString();}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {// 关闭资源if (null != br) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (null != is) {try {is.close();} catch (IOException e) {e.printStackTrace();}}connection.disconnect();// 关闭远程连接}return result;}
}

springBoot请求接口,请求外部接口_springboot请求外部接口_我要用代码向我喜欢的女孩表白的博客-CSDN博客

public  static String getOpenid(String code,String appid,String secret) {
// 调用接口必要的参数StringBuilder data=new StringBuilder();
// appid、secret定义在配置文件中,注入到项目里data.append("appid="+appid+"&");data.append("secret="+ secret+"&");data.append("js_code="+ code+"&");data.append("grant_type="+ "authorization_code");String response = HttpUtils.getRequest("https://api.weixin.qq.com/sns/jscode2session?" + data);return response;}

本地调试需要在微信小程序中,【详情】,然后【选择不校验合法】

Controller层

package com.example.tx_mini_pro.controller;import com.alibaba.fastjson.JSONObject;import com.example.tx_mini_pro.tools.AppConfigTools;
import com.example.tx_mini_pro.tools.WechatTools;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
//    @Autowired
//    UserService userService;@AutowiredWechatTools wechatTools;/*** 微信小程序的登陆,如果有账号,则返回登陆成功,如果没有则返回(首次用户,需要认证)* @return*/
//    @PostMapping("/login")
//    public RsJsonBean LoginUser(@RequestBody JSONObject obj){
//
//        userService.LoginUser(obj.getString("code"));
//
//    return null;
//}@PostMapping("/getWxInfoTest")public String getWxInfoTest(@RequestBody JSONObject obj) {String AppId = AppConfigTools.getWxAppId();String AppSecret = AppConfigTools.getWxAppSecret();JSONObject wxJson = JSONObject.parseObject(WechatTools.getOpenid(obj.getString("code"), AppId, AppSecret));log.info("微信的返回值{}", wxJson);return wxJson.toJSONString();}
}

拿到openId之后,其实就已经登陆了,如果用户是首次的话,那应该注册,获取用户的基本信息

现在获取用户昵称和头像,其他的很多东西,现在比较注重隐私,数据都拿不到的。

现在用户的所有信息都拿不到,只能用户自己填写

 

 

 

关于授权,如果用户拒绝授权,就得删除小程序,在重新进来

 

wx.getUserInfo,然后我得到了一个,昵称叫微信用户的东西,头像是这个

 

前端授权代码

wxml

<view><button bindtap="getScope">授权头像和昵称</button></view>

js

 getScope:function(){wx.getSetting({success(res) {if (!res.authSetting['scope.record']) {wx.authorize({scope: 'scope.userInfo',success () {// 用户已经同意小程序使用昵称和头像功能console.log(wx.getUserInfo())}})}}})}

结果.我真的对小程序很无语

 

参考:

微信小程序登录方法,授权登陆及获取微信用户手机号_微信小程序登陆_痴心阿文的博客-CSDN博客

java 后端获取微信小程序openid-CSDN博客

微信小程序获取用户openid的方法详解_javascript技巧_脚本之家


http://chatgpt.dhexx.cn/article/ckmFqteh.shtml

相关文章

微信小程序后端Java接口开发与调试

https://blog.csdn.net/weixin_50823456/article/details/121166051 一.springboot 一般项目即可,主要是提供接口数据用来演示的 二.创建微信小程序项目 下载安装应用 https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html 创建小程序 本机调试需要改下 :…

在线选课的微信小程序(微信前端+网站后端)

目录 一、前言 二、微信小程序端&#xff08;老师、学生&#xff09; 1.学生用户前端小程序界面 2.老师前端小程序界面 三、后端&#xff08;管理员、老师、学生&#xff09; 3.老师后端 4.管理员后端 四、代码获取与调试 一、前言 这是一个在线选课的微信小程序&#…

小程序与后端交互

目录 1 后端交互时序图 2 不校验域名 3 点击小程序的功能 4 request请求 5 返回结果 6 更新视图层 7 使用案例 7.1 WXML文件 7.2 WXSS文件 7.3 JS文件 8 GitHub地址 1 后端交互时序图 2 不校验域名 如果我们没有备案好的域名的话&#xff0c;在开发过程中我们可开启不校验域…

web前端-微信小程序开发学习

web前端-微信小程序开发学习 1. 小程序的概述2. 小程序的项目结构2.1 小程序项目结构分析2.2 WXML模版2.3 小程序的宿主环境 3. 组件3.1 视图容器类组件3.2 常用的基础内容组件3.3 其它组件 4. 小程序模版与配置4.1 数据绑定4.2 事件绑定4.2.1 bindtap4.2.2 bindinput 4.3 条件…

【微信小程序学习】前后端交互

1、语法&#xff1a;wx.request() onLoad: function (options) {wx.request({url: http://localhost:3000/banner,data:{type:2},success:(res)>{console.log(请求成功:,res)},fail:(err)>{console.log(请求失败:, err)}})},2、注意点&#xff1a; &#xff08;1&#x…

如何开发微信小程序,后端,前端,小程序端,如何部署到腾讯云托管

开发微信小程序是一项非常有趣的任务&#xff0c;它涉及到前端、后端和小程序端的开发。在本文中&#xff0c;我们将介绍如何开发微信小程序&#xff0c;并将其部署到腾讯云托管。 一、前端开发 前端开发是微信小程序开发的第一步。在这一步中&#xff0c;我们需要使用微信小程…

小程序后端

微信小程序实际案例详解&#xff1a;页面搭建&#xff08;附代码&#xff09; https://jingyan.baidu.com/article/5bbb5a1bfe4d5713eba1790e.html 自行部署腾讯云微信小程序后端开发套件wafer https://www.jianshu.com/p/b381ad61b6f0 微信小程序 PHP后端form表单提交实例详解…

前端微信小程序开发基础

文章参考&#xff08;黑马小程序教学视频&#xff09;仅供参考与学习 简介 小程序和普通页面开发的区别 运行环境不同 网页运行在浏览器中&#xff0c;小程序运行在微信环境中 API不同 由于运行环境不同&#xff0c;所以小程序中&#xff0c;无法调用DOM和BOM的API. 但是…

微信小程序商城搭建--后端+前端+小程序端

介绍&#xff1a; 前端技术&#xff1a;React、AntdesignPro、umi、JavaScript、ES6、TypeScript、 小程序 后端技术&#xff1a;Springboot、Mybatis、Spring、Mysql 软件架构&#xff1a; 后端采用Springboot搭配前端React进行开发&#xff0c;完成用户管理、轮播图管理、…

微信小程序本地连接后端开发

技术小白一枚&#xff0c;如有出现错误的地方&#xff0c;还请各位多加指点&#xff0c;也欢迎前来交流。 ​ 开发小程序需要后台开发&#xff0c;但刚刚开始可能不会直接把要调试的代码放在服务器部署。此方法是方便开发者在本地进行微信小程序的前后端连接调试。 1、不校验…

微信小程序前后端数据交互

目录 一 微信小程序发送请求 二 后端接口接受小程序请求并返回数据 三 最后的效果图 先简单说一下我写的这个微信小程序前后端交互的业务&#xff0c;主要是两个数据&#xff1a;supplyCount和wantBuyCount&#xff0c;分别代表我的车源和我的求购。目前的需求就是小程序向后…

web前端开发之微信小程序

My first wechat app 小程序目录 My first wechat app一、微信小程序1.1 微信小程序历史1.2 环境准备1.2.1 注册账号1.2.2 获取APPID1.2.3 微信开发者工具下载地址1.2.4 创建项目1.2.5 微信开发者工具介绍 二、小程序结构2.1 文件结构和web结构对比2.1.1 小程序基本配置目录2.1…

如何开发微信小程序(全解过程包括前端、后端)

微信小程序开发基础知识&#xff1a; &#xff08;1&#xff09;手机的屏幕宽度的最大为750rpx&#xff08;数据与rpx连写&#xff09;&#xff1b; &#xff08;2&#xff09;ctrls 保存即可运行新写的代码&#xff1b; &#xff08;3&#xff09;新建项目的过程&#xff1a;…

前端—微信小程序开发

随着微信的普及和微小程序的广泛应用&#xff0c;微信小程序开发越来越多受到人们的关注&#xff0c;正在成为新工科和人工智能背景下当代大学生的必备技能。 适应对象 该课程适合电子信息类专业学生进行学习。 微信小程序开发课程共六章&#xff0c;通过对微信小程序开发的…

从零开始,开发一个电商微信小程序[前端+后端(c#)]

如何快速搭建一个自己的小程序。 前言:随着微信小程序的迅速发展,用户流量巨大,开发成本低等特点,现在已经成了前端工程师必会的一个技能。 目录 一、后端MVC架构创建二、创建小程序三、实现API接口操作数据四、小程序调用后端Api一、后端MVC架构

【微信小程序】基于SpringBoot开发后端

微信小程序登录流程&#xff1a; 主要步骤&#xff1a; 1、小程序端调用 wx.login()向微信接口服务获取临时登录凭证code&#xff0c;并上传至开发者服务端。 2、开发者服务端向微信服务接口服务调用 auth.code2Session 接口&#xff0c;换取用户唯一标识OpenID和会话密钥sessi…

微信小程序后端Java接口开发

微信小程序后端Java接口开发 微信小程序使用wx.request(OBJECT)来调用后端接口。 首先 我们来一个简单案例 —— helloworld实现 1、搭建一个springboot项目并引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

第一个web项目-微信小程序后端开发

文章目录 第一个web项目-微信小程序后端开发前言需求分析团队分工总体设计开发工具及编码实现小程序前端后端数据库接口代码 管理系统前端1.0管理系统前端2.0 测试后端本地测试前后端联合测试 部署总结 第一个web项目-微信小程序后端开发 前言 去年暑假一个偶然的机会我和几位…

微信小程序开发(后端 Java)

微信使用的开发语言和文件很「特殊」。 小程序所使用的程序文件类型大致分为以下几种&#xff1a; ①WXML (WeiXin Mark Language&#xff0c;微信标记语言) ②WXSS (WeiXin Style Sheet&#xff0c;微信样式表) ③JS (Java&#xff0c;小程序的主体) 小伙伴们有兴趣想了解…

微信小程序开发【前端+后端(java)】

前言 现在微信小程序越来越火了&#xff0c;相信不少人都通过各种途径学习过微信小程序或者尝试开发&#xff0c;作者就是曾经由于兴趣了解开发过微信小程序&#xff0c;最终自己的毕业设计也是开发一个微信小程序。所以现在用这篇博客记录我之前开发的一些经验和一些心得吧。 …