Een nieuw gebruikerssysteem voor mijn website

Ik ben bezig met een nieuw gebruikerssysteem voor rutgerkok.nl. Vroeger kon je punten verzamelen met een paar spelletjes op de site. Dit was echter niet heel veilig, dus ik had het uitgezet.

Later, toen ik deze site overzette naar rCMS, zijn alle oude accounts vervallen. rCMS is mijn zelfgeschreven blogsysteem en heeft nog geen ondersteuning voor punten.

Nu probeer ik dat langzaam te veranderen. Ik ben het gebruikerssysteem aan het herschrijven. Ik heb al een profielpagina toegevoegd. Ook heb ik de formulieren voor de accountinstellingen herschreven, en een paar nieuwe toegevoegd.

Ik moet nog een hoop wijzigen:

  • Ik moet bijhouden wanneer accounts voor het eerst en voor het laatst zijn gebruikt.
  • Ik moet een optie maken om accounts te blokkeren.
  • Ik moet accounts kunnen verwijderen, en gebruikers moeten hun eigen account kunnen verwijderen.
  • Ik moet extra data aan accounts kunnen hangen, in dit geval punten.
  • Ik moet een (redelijk) veilige manier maken om punten te uploaden vanaf een spel.

Daarnaast wil ik ook nog:

  • Wachtwoorden veiliger coderen in de database, zodat zelfs als de database gestolen wordt, de wachtwoorden veiliger zijn (ik gebruik nu md5(sha1(password)), maar dat is niet echt heel veilig).
  • Een wachtwoord-reset functie maken voor vergeetachtige gebruikers.
  • Een captcha toevoegen aan het maken van een account. (Alternatief: een bevestigingsmail, maar ik wil mensen niet dwingen hun email op te geven.)
  • Een captcha toevoegen als gebruikers te vaak met onjuiste gegevens proberen in te loggen.
  • Een captcha toevoegen als niet-ingelogde gebruikers willen reageren op een artikel (ik heb de reacties nu uit staan, omdat ik eerst een spambot had die in een paar dagen tijd 120 spamreacties postte).
  • Een betere admininterface om een overzicht te krijgen van alle aangemaakte accounts.
  • Highscores!

Update 15 juli

De eerste stap is gezet: de gebruikerstabel is gewijzigd naar de nieuwe structuur. Er wordt nu bijgehouden wanneer een account gemaakt wordt en  wanneer een account voor het laatst is ingelogd. Wachtwoorden worden nu veilig opgeslagen. Extra velden voor de status van de account (geblokkeerd, verwijderd, aantal punten, etc.) zijn nu toegevoegd, maar deze doen nog niks.

Update 1 augustus

Accounts kunnen nu verbannen worden. Dit zorgt ervoor dat de account in kwestie wordt uitgelogd en niet meer kan inloggen. Accounts kunnen ook verwijderd worden, maar voorlopig heeft dit nog hetzelfde effect als het verbannen van de account. Later moet het verwijderen van een account er ook voor zorgen dat de reacties en artikelen hun gebruikersnaam verliezen (zodat er niet meer staat wie ze geschreven heeft). In beide gevallen wordt de gebruikerspagina van de gebruiker in kwestie nu niet meer weergegeven voor niet-moderators.