Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • do-it-yourJabber do-it-yourJabber
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • eigenlab
  • do-it-yourJabberdo-it-yourJabber
  • Wiki
  • Pagina d'iscrizione

Last edited by Rachele Grasshopper Mar 15, 2018
Page history

Pagina d'iscrizione

La pagina di iscrizione è la prima interfaccia del servizio con il mondo: deve spiegare cos'è il progetto e permettere l'iscrizione di nuovi utenti. La nostra pagina di iscrizione è https://jabber.eigenlab.org/, e qui sotto sono riportate tutte le informazioni per adattare e utilizzare il nostro codice per fare la tua pagina di registrazione.

  • Copy & Paste
  • Database
  • Gestione delle richieste

Copy & Paste

La cartella homepage/ del repo git contiene tutto quello che serve per avere una pagina di iscrizione funzionante, ovviamente a patto di avere già configurato un server web con il supporto a php.

Database

La pagina gestisce le registrazioni utilizzando un database mySQL ospitato eventualmente su un'altra macchina. Di seguito le operazioni da eseguire per MariaDB:

# mysql -u root -p 
> CREATE DATABASE user_to_add;
> GRANT ALL ON user_to_add.* TO 'xmpp_registration'@'10.Y.Y.Y'; ## IP del server WEB
> SET PASSWORD FOR 'xmpp_registration'@'10.Y.Y.Y' = PASSWORD('MyPasswordGoesHereAndShallNotBeToldToAnyone');
> CREATE TABLE users (username VARCHAR(128), domain VARCHAR(128), password VARCHAR(128), token VARCHAR(128), status TINYINT,date date);
> SHOW TABLES; ## verifica che tutto sia OK

La tabella è molto semplice: i campi username e domain contengono il nome utente e il dominio di registrazione, il campo password contiene solo quella temporanea generata dalla pagina di token (e che viene eliminata dal db non appena la pagina con le credenziali viene visualizzata dall'utente), il campo token contiene per l'appunto la stringa utilizzata dall'utente per ottenere la password, infine il campo status può avere valori 0=pending, 1=approved,-1=blocked.

Può succedere che l'aggiunta della pagina di registrazione venga fatta quando ci sono già degli utenti presenti sul server prosody. L'idea è quella di importare questi username nella tabella users, in modo da renderli indisponibili settando il loro status a 1. Ci sono diversi modi per farlo, nessuno di questo vi risparmierà esaurimenti nervosi e crisi esistenziali.

Nella cartella principale deve essere presente un file credentials.php contentente le informazioni necessarie per permettere alla pagina di registrazione di interagire con il database:

<?php
$sql_servername = "10.X.X.X"; //"dbserver.eigenlab.org";
$sql_username = "xmpp_registration";
$sql_password = "MyPasswordGoesHereAndShallNotBeToldToAnyone";
$sql_dbname = "user_to_add";
?>

Gestione delle richieste

La gestione delle richieste di registrazione pendenti è molto semplice: basta invocare lo script adduser.php da riga di comando con php /path/to/useradd.php. Lo script è interattivo e abbastanza autoesplicativo.

ATTENZIONE: Lo script non deve essere esposto all'esterno e può essere salvato in qualsiasi cartella non pubblica del server. Il file non deve essere copiato nella stessa cartella della homepage così da evitare che server web non completamente configurati possano servire il file con le credenziali del database

Clone repository
  • Configurazione
  • Introduzione
  • Pagina d'iscrizione
  • Home