Heim Web-Frontend js-Tutorial So implementieren Sie eine autorisierte On-Demand-Anmeldung für das Vue WeChat-Projekt

So implementieren Sie eine autorisierte On-Demand-Anmeldung für das Vue WeChat-Projekt

May 23, 2018 am 11:39 AM
授权 登录 项目

Dieses Mal zeige ich Ihnen, wie Sie eine autorisierte On-Demand-Anmeldung für das VueWeChat-Projekt implementieren und welche Vorsichtsmaßnahmen für die Implementierung einer autorisierten On-Demand-Anmeldung für das Vue WeChat-Projekt gelten. Das Folgende ist ein praktischer Fall.

Das Projekt verwendet Vue als Entwicklungsframework. Es gibt zwei Situationen, in denen Benutzer die Seite durchsuchen:

  1. Eine besteht darin, dass sich der Benutzer zuerst anmelden muss, bevor er fortfahren kann Durchsuchen;

  2. Das andere ist, dass Benutzer nach Belieben durchsuchen können, ohne sich anzumelden.

Seiten, die keine Benutzeranmeldung erfordern, können Vorgänge enthalten, die Benutzerinformationen erfordern. In diesem Fall muss sich der Benutzer anmelden, bevor nachfolgende Vorgänge ausgeführt werden können. Daher müssen Autorisierungs-Anmelderichtlinien unterschieden werden.

Ideen

1 Im Allgemeinen erfordert die H5-Seite, die wir für WeChat entwickeln, eine Authentifizierung beim Betreten der Seite, sodass der Benutzer dies tun muss Melden Sie sich an, um mit dem Surfen fortzufahren. Aufgrund der Produktanforderungen müssen wir für dieses Projekt jedoch die Authentifizierungsstrategien verschiedener Seiten aufteilen und sie nach allgemeinen und besonderen Kriterien gestalten:

2. Im Allgemeinen müssen Benutzer die Anmeldung autorisieren, sobald sie dies tun Betreten Sie die Seite gemäß dem routinemäßigen WeChat-Anmeldevorgang. Nach der Anmeldung surft der Benutzer weiter.

3. Konfigurieren Sie in besonderen Fällen eine Whitelist für Seiten, die keine Benutzeranmeldung erfordern. Geben Sie einfach die Route ein, die in der Whitelist vorhanden ist, und geben Sie nicht die Funktion ein, die die Benutzeranmeldung erkennt status , rendern Sie die Seite direkt.

Für Vorgänge, die Benutzerinformationen erfordern, wenn der Benutzer nicht angemeldet ist, muss die Seite nach meinem derzeitigen Verständnis aktualisiert werden, selbst wenn es sich um eine stille Autorisierung auf WeChat-Basis handelt, und dies ist nicht wirklich möglich sinnlose Autorisierung und setzen Sie den Benutzerbetrieb fort. Daher habe ich mich dafür entschieden, den Benutzern benutzerfreundlichere Eingabeaufforderungen auf der Front-End-Ebene zu geben, damit die Benutzer den Autorisierungsprozess verstehen. Der Nachteil besteht darin, dass der vorherige Vorgang nur eine autorisierte Anmeldung auslöste. Nach der autorisierten Anmeldung muss der Benutzer den Vorgang erneut durchführen.

// routerRule.js
export default function routerRule (router, whiteList = []) {
  // other codes...
  router.beforeEach( (to, from, next ) => {
    // 因为授权登录涉及异步操作,因此使用promise,成功的回调中调用next函数
    new Promise((resolve, rejects) => {
      if ( whiteListRouter.indexOf(to.path) !== -1 ) {
        resolve()
        return
       }
      // 常规页面授权登录过程
      if (hasToken()) {
        // codes,获取用户信息并且跳转所需跳转的页面
      } else {
        // 判断用户是否已经进行微信授权
        if (hasAuthed()) {
          // 进行过微信授权之后,重定向回来的url中包含了微信的授权信息,可以将url上截取的参数发送到服务器,换取用户的token,随后进入上述有token时候的步骤
          getWechatUserInfo().then(res => {
            resolve()
          })
        } else {
          // 用户尚未进行微信授权,则调用微信授权的方法,进行授权登录。
          getWechatAuth()
        }
      }
    }).then( res => {
      next()
    })
  })
  router.afterEach(( to, from ) => {
    wxShare({ title: to.meta.title, desc: to.meta.shareDesc, link: to.meta.shareLink, logo: to.meta.shareLogo})
   })
}
Nach dem Login kopieren

Dieses Projekt verknüpft die WeChat-Informationen des Benutzers mit den Benutzerinformationen dieser Website, wenn der Benutzer zum ersten Mal eine Verbindung zu WeChat herstellt. Daher kann der Benutzer nach Erhalt der WeChat-Autorisierungsinformationen des Benutzers ein Token erhalten, um die anderen Informationen des Benutzers zu erhalten Benutzerinformationen auf dieser Website.

Verarbeitungsvorgänge, für die Berechtigungen ohne Anmeldeseite erforderlich sind

Gemäß der obigen Logik wurde nach Eingabe der Whitelist die gesamte Funktion Wenn Wenn Sie es zurücksenden, wird der folgende Authentifizierungsprozess nicht durchgeführt. Wenn jedoch auf einer solchen Seite ein Vorgang ausgeführt wird, für den eine Genehmigung erforderlich ist, muss der Autorisierungs-Anmeldevorgang ausgelöst werden und nach der Autorisierung müssen die Benutzerinformationen zusammen abgerufen werden.

// checkLogin.js
export function checkLogin({ redirectUrl, wxAuthLoading, wxAuthLoaded, callback } = {}) {
  if (getToken()) {
    // ...
    callback && callback()
  } else {
    // 提示用户正在授权中
    wxAuthLoading && wxAuthLoading()
    getWechatAuth( redirectUrl || window.location.href ).then( res => {
      // 授权完毕,提示用户授权成功
      wxAuthLoaded && wxAuthLoaded()
    })
  }
}
Nach dem Login kopieren

Gleichzeitig müssen wir einige Vorgänge zur Routing-Whitelist hinzufügen

// routerRule.js
export default function routerRule (router, whiteList = []) {
  // other codes...
  router.beforeEach( (to, from, next ) => {
    // 因为授权登录涉及异步操作,因此使用promise,成功的回调中调用next函数
    new Promise((resolve, rejects) => {
      if ( whiteListRouter.indexOf(to.path) !== -1 ) {
        // 如果已经进行微信授权但是没有token值的,就调用以下函数获取token值
        if ( !hasToken() && hasAuthed() ) {
          getWechatUserInfo().then(res => {
            resolve()
          })
        }
        resolve()
        return
       }
      // 常规页面授权登录过程
      if (hasToken()) {
        // codes,获取用户信息并且跳转所需跳转的页面
      } else {
        // 判断用户是否已经进行微信授权
        if (hasAuthed()) {
          // 进行过微信授权之后,重定向回来的url中包含了微信的授权信息,可以将url上截取的参数发送到服务器,换取用户的token,随后进入上述有token时候的步骤
          getWechatUserInfo().then(res => {
            resolve()
          })
        } else {
          // 用户尚未进行微信授权,则调用微信授权的方法,进行授权登录。
          getWechatAuth()
        }
      }
    }).then( res => {
      next()
    })
  })
  // other codes...
}
Nach dem Login kopieren

Die Fallstricke und Unvollkommenheiten

1. Bei dieser Lösung müssen nach der Benutzerautorisierung vor dem Routing-Sprung Benutzerinformationen abgerufen werden, andernfalls gehen die WeChat-Autorisierungsinformationen auf der URL verloren und das Abrufen der Benutzerinformationen schlägt fehl.

2. Der Nachteil dieser Lösung besteht darin, dass der Entwickler die checkLogin-Beurteilung für alle erlaubnispflichtigen Vorgänge auf der Seite ohne Anmeldung hinzufügen muss. Da dieser berechtigungspflichtige Vorgang im Allgemeinen das Senden asynchroner Anforderungen umfasst, können Sie, wenn Sie nicht erwägen, unnötige asynchrone Anforderungen zu reduzieren, einen Interceptor für die Anforderungsmethode festlegen, um den vom Backend zurückgegebenen Code zu ermitteln. Wenn der Benutzer dies nicht getan hat Wenn Sie sich mit dem Code anmelden, wird die WeChat-Autorisierung durchgeführt. Dieser Ansatz ist im Entwicklungsprozess praktischer, sendet jedoch einige unnötige Anforderungen an das Backend, wenn der Benutzer nicht angemeldet ist, was nicht gut ist.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Das Vue-Projekt wird gepackt und an den Server gesendet

JS-Implementierung einer einfachen Warenkorbfunktion Code-Analyse

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine autorisierte On-Demand-Anmeldung für das Vue WeChat-Projekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn ich das Hintergrundbild einer anderen Person herunterlade, nachdem ich mich bei WallpaperEngine bei einem anderen Konto angemeldet habe? Was soll ich tun, wenn ich das Hintergrundbild einer anderen Person herunterlade, nachdem ich mich bei WallpaperEngine bei einem anderen Konto angemeldet habe? Mar 19, 2024 pm 02:00 PM

Wenn Sie sich auf Ihrem Computer beim Steam-Konto einer anderen Person anmelden und das Konto dieser anderen Person über eine Hintergrundsoftware verfügt, lädt Steam automatisch die Hintergrundbilder herunter, die für das Konto der anderen Person abonniert wurden, nachdem Sie zu Ihrem eigenen Konto zurückgewechselt haben Deaktivieren der Steam-Cloud-Synchronisierung. Was tun, wenn WallpaperEngine die Hintergrundbilder anderer Personen herunterlädt, nachdem Sie sich bei einem anderen Konto angemeldet haben? 1. Melden Sie sich bei Ihrem eigenen Steam-Konto an, suchen Sie in den Einstellungen nach der Cloud-Synchronisierung und deaktivieren Sie die Steam-Cloud-Synchronisierung. 2. Melden Sie sich bei dem Steam-Konto einer anderen Person an, bei dem Sie sich zuvor angemeldet haben, öffnen Sie den Wallpaper Creative Workshop, suchen Sie nach den Abonnementinhalten und kündigen Sie dann alle Abonnements. (Falls Sie das Hintergrundbild in Zukunft nicht mehr finden, können Sie es zunächst abholen und dann das Abonnement kündigen.) 3. Wechseln Sie zurück zu Ihrem eigenen Steam

Wie melde ich mich bei meinem vorherigen Konto auf Xiaohongshu an? Was soll ich tun, wenn die ursprüngliche Nummer nach der erneuten Verbindung verloren geht? Wie melde ich mich bei meinem vorherigen Konto auf Xiaohongshu an? Was soll ich tun, wenn die ursprüngliche Nummer nach der erneuten Verbindung verloren geht? Mar 21, 2024 pm 09:41 PM

Mit der rasanten Entwicklung der sozialen Medien ist Xiaohongshu für viele junge Menschen zu einer beliebten Plattform geworden, auf der sie ihr Leben teilen und neue Produkte entdecken können. Während der Nutzung können Benutzer manchmal auf Schwierigkeiten stoßen, sich bei früheren Konten anzumelden. In diesem Artikel wird ausführlich erläutert, wie das Problem der Anmeldung beim alten Konto auf Xiaohongshu gelöst werden kann und wie mit der Möglichkeit umgegangen werden kann, dass das ursprüngliche Konto nach dem Ändern der Bindung verloren geht. 1. Wie melde ich mich bei Xiaohongshus vorherigem Konto an? 1. Rufen Sie das Passwort ab und melden Sie sich an. Wenn Sie sich längere Zeit nicht bei Xiaohongshu anmelden, wird Ihr Konto möglicherweise vom System recycelt. Um die Zugriffsrechte wiederherzustellen, können Sie versuchen, sich erneut bei Ihrem Konto anzumelden, indem Sie Ihr Passwort abrufen. Die Bedienungsschritte sind wie folgt: (1) Öffnen Sie die Xiaohongshu-App oder die offizielle Website und klicken Sie auf die Schaltfläche „Anmelden“. (2) Wählen Sie „Passwort abrufen“. (3) Geben Sie die Mobiltelefonnummer ein, die Sie bei der Registrierung Ihres Kontos verwendet haben

Discuz-Lösung für das Anmeldeproblem im Hintergrund enthüllt Discuz-Lösung für das Anmeldeproblem im Hintergrund enthüllt Mar 03, 2024 am 08:57 AM

Die Lösung für das Discuz-Hintergrund-Login-Problem wird aufgezeigt. Mit der rasanten Entwicklung des Internets ist die Website-Erstellung immer häufiger geworden, und Discuz wurde als häufig verwendetes Forum-Website-Erstellungssystem bevorzugt viele Webmaster. Gerade aufgrund seiner leistungsstarken Funktionen stoßen wir jedoch manchmal auf Probleme bei der Verwendung von Discuz, wie z. B. Probleme bei der Anmeldung im Hintergrund. Heute werden wir die Lösung für das Discuz-Hintergrund-Login-Problem enthüllen und konkrete Codebeispiele bereitstellen. Wir hoffen, den Bedürftigen zu helfen.

So melden Sie sich bei der Kuaishou-PC-Version an - So melden Sie sich bei der Kuaishou-PC-Version an So melden Sie sich bei der Kuaishou-PC-Version an - So melden Sie sich bei der Kuaishou-PC-Version an Mar 04, 2024 pm 03:30 PM

Kürzlich haben mich einige Freunde gefragt, wie man sich bei der Kuaishou-Computerversion anmeldet. Hier ist die Anmeldemethode für die Kuaishou-Computerversion. Schritt 1: Suchen Sie zunächst im Browser Ihres Computers nach der offiziellen Website von Kuaishou auf Baidu. Schritt 2: Wählen Sie das erste Element in der Suchergebnisliste aus. Schritt 3: Nachdem Sie die Hauptseite der offiziellen Website von Kuaishou aufgerufen haben, klicken Sie auf die Videooption. Schritt 4: Klicken Sie oben rechts auf den Benutzer-Avatar. Schritt 5: Klicken Sie auf den QR-Code, um sich im Popup-Anmeldemenü anzumelden. Schritt 6: Öffnen Sie dann Kuaishou auf Ihrem Telefon und klicken Sie auf das Symbol in der oberen linken Ecke. Schritt 7: Klicken Sie auf das QR-Code-Logo. Schritt 8: Nachdem Sie auf das Scan-Symbol in der oberen rechten Ecke der Benutzeroberfläche „Mein QR-Code“ geklickt haben, scannen Sie den QR-Code auf Ihrem Computer. Schritt 9: Melden Sie sich abschließend bei der Computerversion von Kuaishou an

Kann KI Fermats letzten Satz überwinden? Der Mathematiker gab fünf Jahre seiner Karriere auf, um 100 Beweisseiten in Code umzuwandeln Kann KI Fermats letzten Satz überwinden? Der Mathematiker gab fünf Jahre seiner Karriere auf, um 100 Beweisseiten in Code umzuwandeln Apr 09, 2024 pm 03:20 PM

Fermats letzter Satz steht kurz davor, von der KI erobert zu werden? Und das Bedeutsamste an der ganzen Sache ist, dass der letzte Satz von Fermat, den die KI gerade lösen wird, genau dazu dient, zu beweisen, dass KI nutzlos ist. Früher gehörte die Mathematik zum Bereich der reinen menschlichen Intelligenz; heute wird dieses Gebiet von fortschrittlichen Algorithmen entschlüsselt und mit Füßen getreten. Bild Der letzte Satz von Fermat ist ein „berüchtigtes“ Rätsel, das Mathematikern seit Jahrhunderten Rätsel aufgibt. Es wurde 1993 bewiesen, und jetzt haben Mathematiker einen großen Plan: den Beweis mithilfe von Computern nachzubilden. Sie hoffen, dass etwaige logische Fehler in dieser Version des Beweises durch einen Computer überprüft werden können. Projektadresse: https://github.com/riccardobrasca/flt

Ein genauerer Blick auf PyCharm: eine schnelle Möglichkeit, Projekte zu löschen Ein genauerer Blick auf PyCharm: eine schnelle Möglichkeit, Projekte zu löschen Feb 26, 2024 pm 04:21 PM

Titel: Erfahren Sie mehr über PyCharm: Eine effiziente Möglichkeit, Projekte zu löschen. In den letzten Jahren wurde Python als leistungsstarke und flexible Programmiersprache von immer mehr Entwicklern bevorzugt. Bei der Entwicklung von Python-Projekten ist es entscheidend, eine effiziente integrierte Entwicklungsumgebung zu wählen. Als leistungsstarke integrierte Entwicklungsumgebung stellt PyCharm Python-Entwicklern viele praktische Funktionen und Tools zur Verfügung, darunter das schnelle und effiziente Löschen von Projektverzeichnissen. Im Folgenden konzentrieren wir uns auf die Verwendung von delete in PyCharm

So melden Sie sich bei Quark bei zwei Geräten an So melden Sie sich bei Quark bei zwei Geräten an Feb 23, 2024 pm 10:55 PM

Wie melde ich mich mit Quark bei zwei Geräten an? Quark Browser unterstützt die gleichzeitige Anmeldung bei zwei Geräten, aber die meisten Freunde wissen nicht, wie sie sich mit Quark Browser bei zwei Geräten anmelden können zu zwei Geräten. Interessierte Benutzer kommen vorbei und schauen sich die grafischen Tutorials an! Tutorial zur Quark Browser-Nutzung Quark, wie man sich bei zwei Geräten anmeldet 1. Öffnen Sie zunächst die Quark Browser-APP und klicken Sie auf der Hauptseite auf [Quark Network Disk] 2. Rufen Sie dann die Quark Network Disk-Benutzeroberfläche auf und wählen Sie die Dienstfunktion [Mein Backup]. 3. Wählen Sie abschließend [Gerät wechseln], um sich bei zwei neuen Geräten anzumelden.

Praktische Tipps für PyCharm: Konvertieren Sie ein Projekt in eine ausführbare EXE-Datei Praktische Tipps für PyCharm: Konvertieren Sie ein Projekt in eine ausführbare EXE-Datei Feb 23, 2024 am 09:33 AM

PyCharm ist eine leistungsstarke integrierte Python-Entwicklungsumgebung, die eine Fülle von Entwicklungstools und Umgebungskonfigurationen bietet und es Entwicklern ermöglicht, Code effizienter zu schreiben und zu debuggen. Bei der Verwendung von PyCharm für die Python-Projektentwicklung müssen wir manchmal das Projekt in eine ausführbare EXE-Datei packen, um es auf einem Computer auszuführen, auf dem keine Python-Umgebung installiert ist. In diesem Artikel wird erläutert, wie Sie mit PyCharm ein Projekt in eine ausführbare EXE-Datei konvertieren, und es werden spezifische Codebeispiele aufgeführt. Kopf

See all articles