suchen
HeimWeChat-AppletMini-ProgrammentwicklungImplementierung des WeChat-Applet-Simulationscookies

Implementierung des WeChat-Applet-Simulationscookies

Jun 22, 2018 pm 04:52 PM
cookie微信小程序

In diesem Artikel wird hauptsächlich die Implementierung des WeChat-Applet-Simulationscookies vorgestellt. Der Inhalt ist ziemlich gut. Jetzt teile ich ihn mit Ihnen und gebe ihn als Referenz.

Entwicklungshintergrund

Das bestehende System verfügt bereits über einen vollständigen Satz an Schnittstellen, und Benutzerstatus und Überprüfung basieren alle auf Cookies .

Einige Unternehmen benötigen eine Mini-Programmversion. Wie wir alle wissen, unterstützen WeChat-Miniprogramme keine Cookies. Um das Geschäft online zu starten, ist es am besten, dies auf der Grundlage der vorhandenen Schnittstellen zu tun. Es wird sich nicht viel ändern und ist auch am schnellsten.

Cookie simulieren

Anfrage über das Entwicklungstool des Browsers anzeigen, Netzwerkleiste, das Cookie im Browser wird übernommen Jeder In den Anforderungsheadern von http wird Cookie als Schlüsselname verwendet.

Dann setzen wir in WeChats offizieller Anfragemethode wx.request den Header und fügen ein Cookie hinzu, das simuliert werden kann.

Es stellt sich wieder die Frage, wie man das Cookie vom Server zurückbekommt.

Zeigen Sie den HTTP-Return-Header über die Anmeldeschnittstelle an (beim Anmelden implantiert der Server ein Cookie als Sitzung).

wx.request({
  url: '/api/login',
  success: (data) => {
    if(data.statusCode === 200) {
      console.log(data);
      // data 中应该会有 Set-Cookie 或 set-cookie 的字样,嗯,那就是服务器种下的 cookie
    }
  }
})

Holen Sie sich das Cookie, speichern Sie es lokal und fügen Sie es direkt ein, wenn Sie das nächste Mal Daten anfordern, perfekt.

Cookies formatieren

Ich dachte ursprünglich, dass Cookies nur eingegeben und beendet werden müssen, um perfekt simuliert zu werden, aber im tatsächlichen Betrieb Ich habe festgestellt, dass das an den Server gesendete Cookie nicht erkannt werden kann.

Das vom Server zurückgegebene Cookie enthält viele Felder zur Speicherung, wie z. B. path=/;

// 服务器放回的 cookie
let cookie = 'userKey=1234567890; Path=/; Expires=Thu, 21 Jun 2018 13:15:08 GMT; HttpOnly,userId=111; Path=/; Expires=Thu, 21 Jun 2018 13:15:08 GMT,nickName=; Path=/; Expires=Thu, 21 Jun 2018 13:15:08 GMT,userName=111111; Path=/; Expires=Thu, 21 Jun 2018 13:15:08 GMT,imgUrl=; Path=/; Expires=Thu, 21 Jun 2018 13:15:08 GMT';

// 模拟的是需要的格式样式
let virtualCookie = 'userKey=1234567890; userName=111111; userId=111;';

Oh mein Gott~was tun Sie möchten? Filtern Sie es.

Eine einfache und grobe Filterlösung geschrieben.

// cookie 的本地存储位置
const COOKIE_KEY = '__cookie_key__';

/**
 * 格式化用户需要的 cookie
 */
const normalizeUserCookie = (cookies = '') => {
  let __cookies = [];
  (cookies.match(/([\w\-.]*)=([^\s=]+);/g) || []).forEach((str) => {
    if (str !== 'Path=/;' && str.indexOf('csrfToken=') !== 0) {
      __cookies.push(str);
    }
  });
  wx.setStorageSync(COOKIE_KEY, __cookies.join(' '));
};

csrfToken wird neben Egg.js verwendet. In einigen Anwendungen wird Path=/; als path=/;

Filtert hauptsächlich Daten wie normalizeUserCookie und schließt dann bedeutungslose Daten wie xx=xxx aus. path=/;

Speichern Sie beim Anmelden an der Schnittstelle das Cookie und bringen Sie es bei der nächsten Anfrage mit. Dann sollte es, ja, vielleicht, simuliert werden.

Funktioniert mit Egg.js

Das integrierte

Plug-in von Egg unterstützt alle „nicht sicheren“ Methoden Standardmäßig führen POST, PUT und DELETE alle eine CSRF-Überprüfung durch. egg-security Egg.js Obwohl CSRF in der Konfiguration deaktiviert werden kann, was ist, wenn es verwendet werden muss?

Zuerst müssen wir eines verstehen,

wie es dazu kam. csrfToken

Nach vielen Überprüfungen ist bekannt, dass der csrfToken-Wert nicht an der vereinbarten Stelle übertragen wird. Diese Anforderung enthält ein neues csrfToken im zurückgegebenen Cookie csrfToken-Wert, Wert, er wird nicht als csrfToken generiert. Wenn das csrfToken am vereinbarten Speicherort mit dem csrfToken im Cookie übereinstimmt, wird die Überprüfung bestanden.

Befolgen Sie den obigen

Vorgang, legen Sie zunächst das csrfToken beiseite und verwalten Sie den Benutzerstatus allein. 格式化用户需要的 cookie

Versuchen Sie nach jeder Anfrage, das möglicherweise im Cookie vorhandene csrfToken separat abzurufen. Wenn es einen Wert gibt, überspringen Sie ihn und verwenden Sie den alten Wert.

Kapselt einen Ajax

Dieses Applet basiert auf Wepy, also dem optimierten

; wepy.request

Egg.js-basierte Version.

Es kann sich geringfügig von der tatsächlichen Entwicklung unterscheiden, bitte ändern Sie es entsprechend.

rrree

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Lernen aller hilfreich sein. Bitte achten Sie auf PHP Chinesische Website!

Verwandte Empfehlungen:

WeChat-Miniprogramm Einführung in die Page()-Funktion

Verwendung von wx:for und wx:for-item im WeChat-Applet

Das obige ist der detaillierte Inhalt vonImplementierung des WeChat-Applet-Simulationscookies. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools