亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Table of Contents
Background
Process
app.js
httpUtils.js
request encapsulation
login
auth.js
Project address
Home WeChat Applet Mini Program Development About request encapsulation of mini programs (with detailed process)

About request encapsulation of mini programs (with detailed process)

Sep 11, 2021 pm 05:07 PM
request

Background

The code of the applet was confusing before, so at the beginning of the new project, we planned to encapsulate the request of WeChat applet

Process

Let’s talk about the whole process first:

1.appjs Once entered, get the user information. If you are not logged in, you will log in by default. No error handling is done here

2. The user must agree to the authorization to perform the operation. If he does not agree to the authorization, he will always jump to the authorization page.

3. After clicking Authorize to log in on the authorization page, call the login interface. After success, return to the page where the authorization was called. ,

app.js

Get user information in onLaunch

appSelf?=?this;
????????//?應(yīng)用程序第一次進(jìn)入,獲取用戶信息,不做任何錯誤處理
????????userInfo().then(?(res)=>{
????????????console.log(res);//?打印結(jié)果
????????????if?(!res.code)?{
????????????????appSelf.globalData.userInfo?=?res
????????????}
????????}).catch(?(errMsg)=>{
????????????console.log(errMsg);//?錯誤提示信息
????????});

httpUtils.js

request encapsulation

const?request?=?function?(path,?method,?data,?header)?{
????let?user_id?=?"";
????let?token?=?"";
????try?{
????????user_id?=?wx.getStorageSync(USER_ID_KEY);
????????token?=?wx.getStorageSync(TOKEN_KEY);
????}?catch?(e)?{}
????header?=?header?||?{};
????let?cookie?=?[];
????cookie.push("USERID="?+?user_id);
????cookie.push("TOKEN="?+?token);
????cookie.push("device="?+?1);
????cookie.push("app_name="?+?1);
????cookie.push("app_version="?+?ENV_VERSION);
????cookie.push("channel="?+?1);
????header.cookie?=?cookie.join(";?");
????return?new?Promise((resolve,?reject)?=>?{
????????wx.request({//后臺請求
????????????url:?API_BASE_URL?+?path,
????????????header:?header,
????????????method:?method,
????????????data:?data,
????????????success:?function?(res)?{
????????????????if?(res.statusCode?!==?200)?{
????????????????????reject(res.data)
????????????????}?else?{
????????????????????if?(res.data.code?===?20006)?{
????????????????????????login().then(?(res)=>{
????????????????????????????resolve(res)
????????????????????????}).catch(?(errMsg)=>{
????????????????????????????reject(errMsg);
????????????????????????})
????????????????????}
????????????????????resolve(res.data)
????????????????}
????????????},
????????????fail:?function?(res)?{
????????????????reject("not?data");
????????????}
????????});
????});
}

login

const?login?=?function?()?{
????try?{
????????wx.removeStorageSync(USER_ID_KEY)
????????wx.removeStorageSync(TOKEN_KEY)
????}?catch?(e)?{}
????return?new?Promise((resolve,?reject)?=>?{
????????wx.login({
????????????success:?res?=>?{
????????????????let?code?=?res.code;
????????????????//?已經(jīng)授權(quán),可以直接調(diào)用?getUserInfo?獲取頭像昵稱,不會彈框
????????????????wx.getUserInfo({
????????????????????withCredentials:?true,
????????????????????success:?res?=>?{
????????????????????????let?userInfo?=?res.userInfo;
????????????????????????let?name?=?userInfo.nickName;
????????????????????????let?avatar?=?userInfo.avatarUrl;
????????????????????????let?sex?=?userInfo.gender;
????????????????????????let?data?=?{
????????????????????????????code:?code,
????????????????????????????encryptedData:?res.encryptedData,
????????????????????????????iv:?res.iv,
????????????????????????????name:?name,
????????????????????????????avatar:?avatar,
????????????????????????????sex:?sex,
????????????????????????????from:?FROM,
????????????????????????};
????????????????????????request("/api/user/login/byWeChatApplet",?"POST",?data).then(?(res)=>{
????????????????????????????if?(!res.code)?{
????????????????????????????????try?{
????????????????????????????????????wx.setStorageSync(USER_ID_KEY,?res.user_id);
????????????????????????????????????wx.setStorageSync(TOKEN_KEY,?res.token)
????????????????????????????????}?catch?(e)?{
????????????????????????????????????reject(JSON.stringify(e));
????????????????????????????????}
????????????????????????????}
????????????????????????????resolve(res)
????????????????????????}).catch(?(errMsg)=>{
????????????????????????????reject(errMsg)
????????????????????????});
????????????????????},
????????????????????fail:?function?(res)?{
????????????????????????console.log(res);

????????????????????????if?(res.errMsg?&&?res.errMsg.startsWith("getUserInfo:fail")?&&?res.errMsg.search("unauthorized")?!=?-1)?{
????????????????????????????//?跳轉(zhuǎn)授權(quán)頁面
????????????????????????????wx.navigateTo({
????????????????????????????????url:?'/pages/auth/auth'
????????????????????????????})
????????????????????????????return;
????????????????????????}
????????????????????????wx.getSetting({
????????????????????????????success:?(res)?=>?{
????????????????????????????????if?(!res.authSetting["scope.userInfo"])?{
????????????????????????????????????//?跳轉(zhuǎn)授權(quán)頁面
????????????????????????????????????wx.navigateTo({
????????????????????????????????????????url:?'/pages/auth/auth'
????????????????????????????????????})
????????????????????????????????}
????????????????????????????}
????????????????????????});
????????????????????}
????????????????})
????????????}
????????})
????});
};

auth.js

Authorization page js

Page({
????data:?{
????},
????onLoad:?function?()?{
????????self?=?this;
????},

????auth:?function?(e)?{
????????console.log(app.globalData.userInfo);
????????if?(e.detail.userInfo)?{
????????????login().then(?(res)=>{
????????????????console.log(res);//?打印結(jié)果
????????????????if?(res.code)?{
????????????????????//?接口錯誤
????????????????????return
????????????????}
????????????????//?跳轉(zhuǎn)回上一個頁面
????????????????wx.navigateBack()
????????????}).catch(?(errMsg)=>{
????????????????console.log(errMsg);//?錯誤提示信息
????????????});
????????}
????},

});

Project address

https://github.com/lmxdawn/wx...

a Backend management built by vue thinkphp5.1: https://github.com/lmxdawn/vu...

Demo:<br>About request encapsulation of mini programs (with detailed process)

<br>

The above is the detailed content of About request encapsulation of mini programs (with detailed process). For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1488
72
What does php request mean? What does php request mean? Jul 07, 2021 pm 01:49 PM

The Chinese meaning of request is "request". It is a global variable in PHP and is an array containing "$_POST", "$_GET" and "$_COOKIE". The "$_REQUEST" variable can obtain data and COOKIE information submitted by POST or GET.

How to use the urllib.request.urlopen() function to send a GET request in Python 3.x How to use the urllib.request.urlopen() function to send a GET request in Python 3.x Jul 30, 2023 am 11:28 AM

How to use the urllib.request.urlopen() function in Python3.x to send a GET request. In network programming, we often need to obtain data from a remote server by sending an HTTP request. In Python, we can use the urllib.request.urlopen() function in the urllib module to send an HTTP request and get the response returned by the server. This article will introduce how to use

How to encapsulate Vue3 Axios interceptor into request file How to encapsulate Vue3 Axios interceptor into request file May 19, 2023 am 11:49 AM

1. Create a new file called request.js and import Axios: importaxiosfrom'axios'; 2. Create a function called request and export it: This will create a function called request and export it Set up a new Axios instance with a base URL. To add timeout settings in a wrapped Axios instance, you can pass the timeout option when creating the Axios instance. exportconstrequest=axios.create({baseURL:'https://example.

What is request in PHP What is request in PHP Jun 01, 2023 am 10:12 AM

Request in PHP refers to request. It is a super global variable in PHP. It is used to collect data submitted by HTML forms and parameters in URLs. It can obtain data from GET and POST requests at the same time. Note that $_request is an associative array. , where the keys are the names of the form fields and the values ??are the values ??of the form fields. When using the $_request variable, user-entered data should always be validated and filtered to avoid security issues.

What is the Request object in PHP? What is the Request object in PHP? Feb 27, 2024 pm 09:06 PM

The Request object in PHP is an object used to handle HTTP requests sent by the client to the server. Through the Request object, we can obtain the client's request information, such as request method, request header information, request parameters, etc., so as to process and respond to the request. In PHP, you can use global variables such as $_REQUEST, $_GET, $_POST, etc. to obtain requested information, but these variables are not objects, but arrays. In order to process request information more flexibly and conveniently, you can

The role and significance of Request in PHP The role and significance of Request in PHP Feb 27, 2024 pm 12:54 PM

The role and significance of Request in PHP In PHP programming, Request is a mechanism for sending requests to the Web server. It plays a vital role in Web development. Request is mainly used to obtain data sent by the client, such as form submission, GET or POST request, etc. Through Request, the data input by the user can be obtained, and the data can be processed and responded to. This article will introduce the role and significance of Request in PHP and give specific code examples.

How to use context to implement request parameter verification in Go How to use context to implement request parameter verification in Go Jul 22, 2023 am 08:23 AM

How to use context to implement request parameter verification in Go Introduction: During the back-end development process, we often need to verify the request parameters to ensure the legality of the parameters. The Go language provides the context package to handle request context information. Its elegant design and simple use make it a commonly used tool. This article will introduce how to use Go's context package to implement request parameter verification and give corresponding code examples. Introduction to the context package In Go, the context package is used to deliver

How to use the urllib.request module to send HTTP requests in Python 3.x How to use the urllib.request module to send HTTP requests in Python 3.x Jul 30, 2023 am 11:21 AM

How to use the urllib.request module to send HTTP requests in Python3.x. In the actual development process, we often need to send HTTP requests to interact with the server. Python provides the urllib.request module, which is one of the modules in the Python standard library for handling URL requests. In this article, we will learn how to send HTTP requests using the urllib.request module

See all articles