? ACT = Ledencreatie

Is er een specifieke ACT-opdracht in Expression Engine 3 die ik kan uitvoeren vanuit een sjabloon om leden te maken?

Ik kan dit waarschijnlijk doen door direct in de database op te slaan en hoewel het wachtwoord geen probleem is omdat ik het kan hashen heb ik geen idee wat Expression Engine gebruikt voor de salt en andere hashes in de ee_members-tabellen omdat er meer dan één is. Is er een schone manier om leden programmatisch aan te maken?

2
ja ru de

1 antwoord

ExpressionEngine heeft hiervoor de meeste programmavriendelijke structuur.

U kunt gewoon 2 db invoegopdrachten schrijven om leden programmatisch op te slaan. Waar 1 tabel zou zijn exp_members en andere is exp_member_data </​​code>.

Voor het wachtwoord kunt u het coderen met het md5 -algoritme en de lege en unieke sleutelvelden leeg laten. Wanneer de gebruiker voor de eerste keer inlogt, wordt het wachtwoord versleuteld met zout en worden de gegevens in de tabel opgeslagen. (EE verwerkt dat.)

Ik zou deze 2 zoekopdrachten gebruiken om leden op te slaan:

INSERT INTO `exp_members` (`group_id`, `username`, `screen_name`, `password`, `email`, `ip_address`, `join_date`) VALUES ('5', 'test_user', 'test user', MD5('test_user'), '[email protected]', '192.168.1.1', '1534230407');

U moet dan een selectiequery maken die u member_id geeft van gegevens die u zojuist hebt ingevoegd. U kunt gebruikersnaam, e-mail etc. gebruiken om het resultaat te filteren om member_id te krijgen. Zodra u member_id hebt, kunt u een andere query in exp_member_data </​​code> starten.

INSERT INTO `exp_member_data` (`member_id`) VALUES ('$MY_MEMBER_ID');

Opmerking: maak een lid van het programma dat hierboven live staat boven, valideert geen gegevens met een EE-validatiebibliotheek. Als je deze functionaliteit voor backend wilt hebben, is dat prima. Gebruik echter een lid-plug-in voor ledenregistratie voor leden.

1
toegevoegd
Blij dat het voor je werkt. Zoals ik hierboven al zei, hoef je je geen zorgen te maken over salt en crypt_key. Het wordt automatisch gemaakt zodra je voor de eerste keer ingelogd bent met die gebruiker. Het codeert ook je MD5-wachtwoord in gehashte string (versleutelen met salt en crypt key)
toegevoegd de auteur Antonello, de bron
ha ha .. Codering is afhankelijk van de lengte van de string .. prntscr.com/kirlrv . Bovendien leent het niet alleen deze codering. Het zal het opnieuw versleutelen met salt en crypt key als je voor de eerste keer inlogt.
toegevoegd de auteur Antonello, de bron
Bedankt, maar de tabellen ee_members bevat ook extra velden met de naam "salt" en "crypt_key". Het volstaat niet om het gehashte wachtwoord en de unieke ID en de rest van de velden gewoon in te vullen terwijl u deze leeg laat. Het dichtstbijzijnde dat ik vond dat ik gebruikte voor EE 2 maar niet meer werkt op EE 3 is dit: github.com/intoeetive/auto_register Als u kijkt, gebruikt u EE-query's om de gebruiker met een willekeurig wachtwoord te maken en wijzigt u vervolgens het wachtwoord en wijst u de gebruiker een uniek ID toe. Dit is niet voor de voorkant van een gebruiker, veiligheid is geen probleem.
toegevoegd de auteur 79E09796, de bron
DANK JE! Terwijl ik de eerste query al aan het doen was, had ik geen idee dat je ook de tabel exp_member_data moest activeren. De ontbrekende gegevens op ee_members worden nu automatisch ingevuld na de eerste keer inloggen. Het werkt geweldig!
toegevoegd de auteur 79E09796, de bron
Waarom gebruikt EE md5, wat hoogst onveilig is voor hashing? Moet dit niet bcrypt zijn of tenminste sha?
toegevoegd de auteur 79E09796, de bron
Klinkt logisch. Dank je.
toegevoegd de auteur 79E09796, de bron