国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了微信小程序登陸(全流程-前后端)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

環(huán)境要求

1.注冊一個小程序

2.微信開發(fā)者工具

3.idea(springboot)

目錄

項目準備

用戶登陸

前端開發(fā),傳遞code

index.wxss

index.js

后端編寫,調(diào)用微信接口,獲取openId

現(xiàn)在用戶的所有信息都拿不到,只能用戶自己填寫


其實微信前端是可以直接請求獲取openId的,但是會暴露你的key和secret

流程:前端獲取code->后端調(diào)用微信接口->返回openid給前端


項目準備

1.打開微信開發(fā)工具,點擊添加

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

2.創(chuàng)建小程序

  • 修改項目名稱
  • 更換目錄
  • 選擇從網(wǎng)頁創(chuàng)建好的小程序AppId
  • 選擇不使用云服務
  • 模板選擇基礎
  • 使用javaScript的基礎模板

用戶登陸

前端開發(fā),傳遞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) {
          //發(fā)起網(wǎng)絡請求
          wx.request({
            url: 'http://localhost:8087/user/getWxInfoTest',
            method: 'post',
            data: {
              code: res.code
            }
          })
        } else {
          console.log('登錄失??!' + res.errMsg)
        }
      }
    })
  }
})

后端編寫,調(diào)用微信接口,獲取openId

獲取openId需要3個參數(shù),appid,code,secret。

登錄 微信公眾平臺 =>開發(fā)管理=>開發(fā)設置=>開發(fā)者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;// 返回結(jié)果字符串
        try {
            // 創(chuàng)建遠程url連接對象
            URL url = new URL(httpurl);
                    // 通過遠程url連接對象打開一個連接,強轉(zhuǎn)成httpURLConnection類
                    connection = (HttpURLConnection) url.openConnection();
            // 設置連接方式:get
            connection.setRequestMethod("GET");
            // 設置連接主機服務器的超時時間:15000毫秒
            connection.setConnectTimeout(15000);
            // 設置讀取遠程返回的數(shù)據(jù)時間:60000毫秒
            connection.setReadTimeout(60000);
            // 發(fā)送請求
            connection.connect();
            // 通過connection連接,獲取輸入流
            if (connection.getResponseCode() == 200) {
                is = connection.getInputStream();
                // 封裝輸入流is,并指定字符集
                br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                // 存放數(shù)據(jù)
                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 {
            // 關(guān)閉資源
            if (null != br) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (null != is) {
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            connection.disconnect();// 關(guān)閉遠程連接
        }

        return result;
    }
}

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

public  static String getOpenid(String code,String appid,String secret) {
// 調(diào)用接口必要的參數(shù)
        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;
    }

本地調(diào)試需要在微信小程序中,【詳情】,然后【選擇不校驗合法】

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

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;

    @Autowired
    WechatTools 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之后,其實就已經(jīng)登陸了,如果用戶是首次的話,那應該注冊,獲取用戶的基本信息

現(xiàn)在獲取用戶昵稱和頭像,其他的很多東西,現(xiàn)在比較注重隱私,數(shù)據(jù)都拿不到的。

現(xiàn)在用戶的所有信息都拿不到,只能用戶自己填寫

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

?

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

?

關(guān)于授權(quán),如果用戶拒絕授權(quán),就得刪除小程序,在重新進來

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

?

wx.getUserInfo,然后我得到了一個,昵稱叫微信用戶的東西,頭像是這個

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

?

前端授權(quán)代碼

wxml

<view><button?bindtap="getScope">授權(quán)頭像和昵稱</button></view>

js

 getScope:function(){
    wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.record']) {
          wx.authorize({
            scope: 'scope.userInfo',
            success () {
              // 用戶已經(jīng)同意小程序使用昵稱和頭像功能
              console.log(wx.getUserInfo())
            }
          })
        }
      }
    })
  }

結(jié)果.我真的對小程序很無語

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

?

參考:

微信小程序登錄方法,授權(quán)登陸及獲取微信用戶手機號_微信小程序登陸_癡心阿文的博客-CSDN博客

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

微信小程序獲取用戶openid的方法詳解_javascript技巧_腳本之家文章來源地址http://www.zghlxwxcb.cn/news/detail-406854.html

到了這里,關(guān)于微信小程序登陸(全流程-前后端)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 微信公眾號程序或微信小程序接入微信支付流程(前后端程序示例)

    微信公眾號程序或微信小程序接入微信支付流程(前后端程序示例)

    ??微信公眾號程序或微信小程序項目中基本都要有微信支付。支付場景基本就是點擊支付,然后手機底部拉起輸入微信支付密碼彈窗,密碼輸入正確后,支付完成。但是無論是微信小程序或微信公眾號程序都是在后端調(diào)用微信api接口進行統(tǒng)一下單,將接口返回數(shù)據(jù)回傳前端

    2024年02月09日
    瀏覽(38)
  • 前端uniapp+后端springboot 詳細教程《實現(xiàn)微信小程序授權(quán)登錄》(附完整前后端項目demo)

    前端uniapp+后端springboot 詳細教程《實現(xiàn)微信小程序授權(quán)登錄》(附完整前后端項目demo)

    微信小程序官方登錄流程圖: 參考微信小程序登錄官網(wǎng)文檔 1、前端技術(shù)棧 1.1、uniapp 使用uniapp構(gòu)建一套代碼多端使用的前端框架項目 1.2、前端封裝工具 dateUtil.js: 功能: 1. 時間日期格式化 2. 傳入日期是否和當前日期的比較 完整代碼: requestUtil.js: 功能: 1. 定義公共的

    2024年02月14日
    瀏覽(100)
  • 微信小程序第五節(jié)——登錄那些事兒(超詳細的前后端完整流程)

    微信小程序第五節(jié)——登錄那些事兒(超詳細的前后端完整流程)

    ?? 微信小程序第一節(jié) ——自定義頂部、底部導航欄以及獲取膠囊體位置信息。 ?? 微信小程序第二節(jié) —— 自定義組件 ?? 微信小程序第三節(jié) —— 頁面跳轉(zhuǎn)的那些事兒 ?? 微信小程序第四節(jié)—— 網(wǎng)絡請求那些事兒 ?? 作 ? ??????? 者 :是江迪呀 ?? 本文 : 微

    2024年02月09日
    瀏覽(21)
  • Gpt微信小程序搭建的前后端流程 - 前端小程序部分-1.基礎頁面框架的靜態(tài)設計(二)

    Gpt微信小程序搭建的前后端流程 - 前端小程序部分-1.基礎頁面框架的靜態(tài)設計(二)

    Gpt微信小程序搭建的前后端流程 - 前端小程序部分-1.基礎頁面框架的靜態(tài)設計(二) 在開始這個專欄,我們需要找一個小程序為參考,參考和仿照其界面,聊天交互模式。 這里參考小程序- 小檸AI智能聊天 ,可自行先體驗。 該小程序主要提供了以下幾點 功能向需求 : 每天免費

    2024年02月14日
    瀏覽(21)
  • 小程序微信登陸實現(xiàn)流程

    小程序微信登陸實現(xiàn)流程

    1. 微信登錄流程 微信登錄官方介紹:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 小程序登錄:小程序可以通過微信官方提供的登錄能力方便地獲取微信提供的用戶身份標識,快速建立小程序內(nèi)的用戶體系。 登錄流程時序 步驟分析: 小程序端,調(diào)用wx.log

    2024年02月17日
    瀏覽(14)
  • 微信小程序之微信登陸-——-微信小程序教程系列

    微信小程序之微信登陸-——-微信小程序教程系列

    }) 黃色標注的部分就是登陸部分 下面詳細介紹微信小程序的微信登陸 第一步:獲取登陸態(tài)code 微信登陸部分,首先需要使用微信小程序的api—— wx.login(OBJECT)來獲取登錄態(tài) 這個登陸態(tài)的作用是為了獲取用戶的openid(用戶的唯一標識) 相關(guān)鏈接:https://mp.weixin.qq.com/debug/wxadoc

    2024年04月23日
    瀏覽(37)
  • 微信小程序的登陸界面怎么寫(手機號登陸)

    微信小程序的登錄界面可以通過使用 view 、 input 、 button 等組件來實現(xiàn)。以下是一個簡單的登錄界面示例代碼: 其中, .login-container 是登錄頁面的容器, .login-title 是登錄標題, .form-item 是表單項容器, input 是輸入框, .login-btn 是登錄按鈕。

    2024年02月16日
    瀏覽(85)
  • 微信小程序?qū)崿F(xiàn)圖形驗證碼登陸+手機驗證碼登陸
  • 微信小程序基礎入門---登陸實現(xiàn)

    微信小程序基礎入門---登陸實現(xiàn)

    在用戶填寫完信息之后,點擊登錄按鈕,調(diào)用登錄接口,根據(jù)后臺返回內(nèi)容判斷是否登錄成功。 ?????? 在這里,當我們輸入正確的賬號和密碼之后,后臺提示我們登錄成功,但是當我們在登錄成功之后在調(diào)用,獲取用戶信息的方法的時候,發(fā)現(xiàn)提示還是當前用戶未登錄。

    2023年04月14日
    瀏覽(22)
  • Java微信小程序的授權(quán)登陸

    Java微信小程序的授權(quán)登陸

    【前提】: 獲取服務號的公眾號平臺,中的【開發(fā)配置】進去, 獲取小程序的 AppId 與 AppSevrect 【登陸授權(quán)作用域分為兩種】 一 、靜默登陸 scope 參數(shù)值為 snsapi_base ;只能獲取到用戶 openid 。好處是靜默認證,無需用戶手動點擊認證按鈕,感覺上像是直接進入網(wǎng)站一樣。 二、

    2024年02月01日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包