Zum Hauptinhalt springen

Soziale Anmeldung mit WeChat (Native) einrichten

Der offizielle Logto Connector für die WeChat soziale Anmeldung in nativen Apps (iOS und Android).

tipp:

Diese Anleitung setzt voraus, dass du ein grundlegendes Verständnis von Logto Connectors hast. Für diejenigen, die damit nicht vertraut sind, verweisen wir auf die Connectors Anleitung, um loszulegen.

Erste Schritte

Wenn du das Konzept des Connectors nicht kennst oder nicht weißt, wie du diesen Connector zu deiner Anmeldeerfahrung hinzufügen kannst, sieh dir bitte das Logto-Tutorial an.

In nativen Apps kannst du das Web nicht als Anmeldemethode von WeChat verwenden: Die Navigation zur WeChat-App ist erforderlich, und es erfordert auch die Verwendung ihres SDKs.

Wir wissen, dass es beängstigend klingt, aber keine Sorge. Wir werden es in diesem Tutorial leicht handhaben.

Erstelle eine mobile App auf der WeChat Open Platform

tipp:

Du kannst einige Abschnitte überspringen, wenn du sie bereits abgeschlossen hast.

Erstelle ein Konto

Öffne https://open.weixin.qq.com/, klicke auf die Schaltfläche "Registrieren" in der oberen rechten Ecke und schließe dann den Registrierungsprozess ab.

Erstelle eine mobile App

Melde dich mit dem gerade erstellten Konto an. Im Tab "Mobile Anwendung" (移动应用) klicke auf die große grüne Schaltfläche "Mobile Anwendung erstellen" (创建移动应用).

App-Tabs

Fülle die erforderlichen Informationen im Antragsformular aus.

Mobile App erstellen

Grundlegende Informationen

Die meisten davon sind ziemlich einfach, und wir haben hier einige Tipps:

  • Wenn du nur die WeChat-Anmeldung testen möchtest und die App nicht im App Store ist, wähle im Abschnitt "App ist verfügbar" "Nein", um den "App-Download-Link" zu überspringen.
  • Das "App-Betriebsablaufdiagramm" sieht knifflig aus. Aus unserer Erfahrung musst du ein einfaches Flussdiagramm und mehrere App-Screenshots vorbereiten, um die Möglichkeit zu erhöhen, die Überprüfung zu bestehen.

Klicke auf "Nächster Schritt", um fortzufahren.

Plattforminformationen

Du kannst eine oder beide iOS- und Android-Plattformen konfigurieren, um Logto mit der nativen WeChat-Anmeldung zu integrieren.

iOS-App

Wähle "iOS-App" (iOS 应用) und dann entsprechend den Zielgerätetyp deiner App.

App-Plattform

Wenn du "Nein" für die Verfügbarkeit im App Store gewählt hast, kannst du das Ausfüllen der "AppStore-Download-Adresse" hier überspringen.

Fülle Bundle ID, Testversion Bundle ID und Universal Links aus (tatsächlich wird nur ein Link benötigt 😂).

hinweis:

Bundle ID und Testversion Bundle ID können denselben Wert haben.

tipp:

WeChat erfordert einen universellen Link für die native Anmeldung. Wenn du ihn nicht eingerichtet hast oder nicht weißt, was das ist, sieh dir bitte die offizielle Apple-Dokumentation an.

Android-App

Wähle "Android-App" (Android 应用).

Android-App-Plattform

Fülle Anwendungssignatur (应用签名) und Anwendungspaketname (应用包名) aus.

hinweis:

Du musst deine App signieren, um eine Signatur zu erhalten. Siehe App signieren für weitere Informationen.

Nachdem du die Signierung abgeschlossen hast, kannst du die signingReport-Aufgabe ausführen, um die Signatursignatur zu erhalten.

./gradlew your-android-project:signingReport

Der MD5-Wert des entsprechenden Build-Variantenberichts wird die Anwendungssignatur (应用签名) sein, aber denke daran, alle Doppelpunkte aus dem Wert zu entfernen und ihn in Kleinbuchstaben zu schreiben.

Z.B. 1A:2B:3C:4D -> 1a2b3c4d.

Warten auf das Überprüfungsergebnis

Nachdem du die Plattforminformationen abgeschlossen hast, klicke auf "Überprüfung einreichen", um fortzufahren. Normalerweise geht die Überprüfung schnell, sie endet innerhalb von 1-2 Tagen.

Wir vermuten, dass der Prüfer bei jeder Einreichung zufällig zugewiesen wird, da der Standard schwankt. Du könntest beim ersten Mal abgelehnt werden, aber gib nicht auf! Erkläre deinen aktuellen Status und frage den Prüfer, wie du ihn ändern kannst.

Aktiviere die native WeChat-Anmeldung in deiner App

iOS

Wir gehen davon aus, dass du das Logto iOS SDK in deine App integriert hast. In diesem Fall sind die Dinge ziemlich einfach, und du musst nicht einmal die WeChat SDK-Dokumentation lesen:

1. Konfiguriere den universellen Link und das URL-Schema in deinem Xcode-Projekt

Im Xcode-Projekt -> Tab "Signing & Capabilities", füge die Fähigkeit "Associated Domains" und den zuvor konfigurierten universellen Link hinzu.

Universeller Link

Gehe dann zum Tab "Info" und füge ein benutzerdefiniertes URL-Schema mit der WeChat App ID hinzu.

Benutzerdefiniertes URL-Schema

Öffne schließlich deine Info.plist und füge weixinULAPI und weixin unter LSApplicationQueriesSchemes hinzu.

Plist
hinweis:

Wir wissen, dass diese Aktionen nicht sehr vernünftig sind, aber dies ist die minimal funktionsfähige Lösung, die wir gefunden haben. Siehe den magischen offiziellen Leitfaden für weitere Informationen.

2. Füge LogtoSocialPluginWechat zu deinem Xcode-Projekt hinzu

Füge das Framework hinzu:

Framework hinzufügen

Und füge -ObjC zu deinen Build-Einstellungen > Linking > Other Linker Flags hinzu:

Linker-Flags
hinweis:

Das Plugin enthält das WeChat Open SDK 1.9.2. Du kannst import WechatOpenSDK direkt verwenden, sobald das Plugin importiert ist.

3. Füge das Plugin zu deinen LogtoClient-Init-Optionen hinzu

let logtoClient = LogtoClient(
useConfig: config,
socialPlugins: [LogtoSocialPluginWechat()]
)

4. Behandle onOpenURL richtig

hinweis:

Die Funktion LogtoClient.handle(url:) wird alle nativen Connectoren behandeln, die du aktiviert hast. Du musst sie nur einmal aufrufen.

// SwiftUI
YourRootView()
.onOpenURL { url in
LogtoClient.handle(url: url)
}

// oder AppDelegate
func application(_ app: UIApplication, open url: URL, options: /*...*/) -> Bool {
LogtoClient.handle(url: url)
}

Android

Wir gehen davon aus, dass du das Logto Android SDK in deine App integriert hast. In diesem Fall sind die Dinge ziemlich einfach, und du musst nicht einmal die WeChat SDK-Dokumentation lesen:

1. Füge Wechat Open SDK zu deinem Projekt hinzu

Stelle sicher, dass das mavenCentral()-Repository in deinen Gradle-Projekt-Repositories enthalten ist:

repositories {
// ...
mavenCentral()
}

Füge das Wechat Open SDK zu deinen Abhängigkeiten hinzu:

dependencies {
// ...
api("com.tencent.mm.opensdk:wechat-sdk-android:6.8.0") // kotlin-script
// oder
api 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.0' // groovy-script
}

2. Führe WXEntryActivity in dein Projekt ein

Erstelle ein wxapi-Paket unter deinem Paketstamm und füge die WXEntryActivity im wxapi-Paket hinzu (Nehmen wir com.sample.app als Beispiel):

// WXEntryActivity.kt
package com.sample.app.wxapi

import io.logto.sdk.android.auth.social.wechat.WechatSocialResultActivity

class WXEntryActivity: WechatSocialResultActivity()
// WXEntryActivity.java
package com.sample.app.wxapi

import io.logto.sdk.android.auth.social.wechat.WechatSocialResultActivity

public class WXEntryActivity extends WechatSocialResultActivity {}

Die endgültige Position der WXEntryActivity im Projekt sollte so aussehen (Nehmen wir Kotlin als Beispiel):

src/main/kotlin/com/sample/app/wxapi/WXEntryActivity.kt

3. Ändere die AndroidManifest.xml

Füge die folgende Zeile zu deiner AndroidManifest.xml hinzu:

\<?xml version="1.0" encoding="utf-8"?>
\<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.app">

\<application>
\<!-- hinzuzufügende Zeile -->
\<activity android:name=".wxapi.WXEntryActivity" android:exported="true"/>
\</application>

\</manifest>

Teste den nativen WeChat-Connector

Das war's. Vergiss nicht, den sozialen Connector in der Anmeldeerfahrung zu aktivieren.

Sobald der native WeChat-Connector aktiviert ist, kannst du deine App erstellen und ausführen, um zu sehen, ob es funktioniert.

vorsicht:

WeChat hat keinen Plan für Geräte ohne installierte WeChat-App. Logto wird diesen Connector während der Anmeldung ausblenden, falls dies der Fall ist (was die empfohlene Vorgehensweise aus dem offiziellen Entwicklungsleitfaden ist).