Visualizzazione post con etichetta fosUserBundle. Mostra tutti i post
Visualizzazione post con etichetta fosUserBundle. Mostra tutti i post

lunedì 14 marzo 2016

Facebook login - symfony - hwiHWIOAuthBundle - recuperare parametri come email, nome, cognome

Se si utilizza il bundle hwi/HWIOAuthBundle per realizzare un facebook login nel nostro progetto symfony, sarà possibile avere problemi nel recuperare parametri come email, nome, cognome, ecc.

L'app creata su facebook deve essere abilitata a fornire i dati che ci servono, e nelle configurazioni va specificato

scope: "public_profile,email"

Ma anche questo non basta più, bisogna sovrascrivere un parametro nella configurazione, specificando il link da cui recuperare i parametri, specificandoli tutti anche qui.
Quindi:

    resource_owners:
        facebook:
            ...
            infos_url:     "https://graph.facebook.com/me?fields=id,name,first_name,last_name,email"

Aggiungendo alla configurazione infos_url il campo $response sarà popolato con con le informazioni di cui abbiamo bisogno.

venerdì 25 luglio 2014

Utilizzando FosUserBundle il ruolo ROLE_USER non viene salvato nel database

Può capitare di dover attribuire dei ruoli differenti per ogni utente in un progetto Symfony2.

Se si utilizza FosUserBundle, il ruolo ROLE_USER sarà attribuito di default a tutti gli utenti e non sarà possibile salvarlo nel database.

Se si scrive qualcosa del genere
$user->addRole('ROLE_USER');

Il risultato sarà quello di avere un array vuoto nel database.

{}

 A seconda delle proprie necessità converrà aggiungere un nuovo ruolo, qualcosa del genere

$user->addRole('ROLE_CLIENT');

 oppure lasciare il database vuoto, consapevoli del fatto che il ruolo ROLE_USER é stato comunque aggiunto.

domenica 1 dicembre 2013

Ottenere informazioni utente fosUserBundle Symfony2

Per recuperare I dati dell'utente nel controller è necessario utilizzare l'oggetto
$this->getUser()
Quindi per recuperare, ad esempio, l'id dell'utente bisogna utilizzare il metodo ->getId quindi:
$this->getUser()->getId()
Per fare la stessa cosa sul template, quindi utilizzando twig, bisogna fare la stessa cosa, quindi per far spampare l'username dell'utente:
{{ app.user.username }}
E' possibile anche controllare se l'utente è loggato:
{% if is_granted("ROLE") %}
    Hi {{ app.user.username }}
{% endif %}
Ovviamente è necessario scrivere al posto di ROLE il reale ruolo dell'utente, quello che si è scritto nel file di configurazione, ad esempio ROLE_USER o ROLE_ADMIN.