Ich erstelle eine App, mit der die App auf eine ACT-URL trifft, die dann eine Modulmethode auslöst, um mithilfe der ExpressionEngine-API einen neuen Eintrag zu erstellen. Da jedoch kein Benutzer angemeldet / angemeldet ist, ist es nicht erlaubt, einen Eintrag an einen Kanal zu senden.
Was ist der beste Weg, dies zu tun? Umgehen Sie die EE-API und reichen Sie den Eintrag manuell ein, oder melden Sie einen Benutzer progamatisch an. Aber wie würde das mit Sitzungen usw. funktionieren?
Wenn die Antwort darin besteht, "einen Benutzer einzuloggen", wäre es schön, wenn möglich ein Codebeispiel zu sehen.
Danke!
Wie Sie bereits erwähnt haben, gibt es zwei Möglichkeiten, einen neuen Eintrag hinzuzufügen:
Die Hauptunterschiede bestehen darin, dass Einträge, die über die API hinzugefügt werden,:
Das manuelle Hinzufügen des Eintrags ist relativ einfach für einfache Kanäle, wird jedoch komplizierter, wenn Sie Feldtypen von Drittanbietern verwenden, die zusätzliche Tabellen verwenden.
Um ein Mitglied in dir zu loggen, musst du nur:
%Vor%Verwenden Sie die Kanaleinträge api, um den Eintrag hinzuzufügen, und dann:
%Vor%wenn Sie fertig sind.
Sie werden sich die Auth.php-Klasse in ./system/libraries/Auth.php ansehen wollen. Diese Klasse ist eine Abstraktion der Authentifizierungs-APIs und ermöglicht es Ihnen, genau das zu tun, was Sie wollen. Die "loggin as user" -Funktion verwendet diese Methoden sowie das Member-Modul.
Sie können auch das Authenticate-Modul (das kostenlos ist) betrachten, damit Sie eine Vorstellung davon bekommen, wie andere mit der Auth-Klasse arbeiten.
Hier ist ein Pseudo-Code, den Sie verwenden können:
%Vor%Dieser Code sollte funktionieren, aber ich hatte keine Zeit, ihn auszuführen, weshalb er als Pseudocode betrachtet wird.
Ich sollte auch hinzufügen, dass ich nicht sicher bin, ob dies sogar der beste Weg ist, um Ihr Problem zu lösen. Ich beantworte einfach die Fragen "Wie programmiere ich einen Benutzer programmatisch, ohne sein Passwort zu kennen und ohne ein Login-Formular zu senden."
Tags und Links php expressionengine