proxiweb / persona-bundle
Symfony2 Mozilla's Persona security extension
Installs: 34
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 1
Forks: 2
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.3.2
- friendsofsymfony/user-bundle: dev-master
- symfony/symfony: >=2.1
Suggests
- propel/propel-bundle: If you want to use Propel ORM for FOSUserBundle
This package is not auto-updated.
Last update: 2025-03-29 16:52:46 UTC
README
Mozilla Persona Authentication for Symfony2
With this bundle you can easily setup a Mozilla Persona authentication for your Symfony2 project.
Prerequisites
This version of the bundle requires Symfony 2.1+ and FOSUserBundle.
Installation
Add PersonaBundle in your composer.json:
{ "require": { "proxiweb/persona-bundle": "*" } }
Add PersonaBundle in AppKernel.php
... new Proxiweb\Bundle\PersonaBundle\ProxiwebPersonaBundle(),
Now tell composer to download the bundle by running the command:
$ php composer.phar update proxiweb/persona-bundle
Composer will install the bundle to your project's vendor/proxiweb
directory.
Configuration
- Configure FOSUserBundle
- Login By Email
- Authentication urls configuration
- Add Persona's assets
- Demo page
###2.Login by Email Persona authenticates users with their email, so you must configure FOSUserBundle to enable login with email :
# app/config/security.yml security: providers: fos_userbundle: # replace fos_user.user_provider.username with fos_user.user_provider.username_email id: fos_user.user_provider.username_email
###3. Authentication urls configuration Persona logs the user by perfoming an ajax request to an url which performs authentication. PersonaBundle achieves the authentication process started by accessing a secured url
# app/config/security.yml security: firewalls: person_secured: pattern: ^/persona/login # the secured url which performs authentication persona: true context: primary_auth # use the same context as the FOSUserBundle anonymous: true # so the persona & login authentication will share the same main: # security session pattern: ^/ form_login: provider: fos_userbundle csrf_provider: form.csrf_provider logout: true anonymous: true context: primary_auth access_control: - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } - { path: ^/persona/login, role: ROLE_ADMIN } - { path: ^/persona/demo, role: IS_AUTHENTICATED_ANONYMOUSLY } # optional demo page - { path: ^/persona/logout, role: IS_AUTHENTICATED_ANONYMOUSLY } # logout url
###4. Add Persona's assets
Add the script to the pages which performs authentication and pages you wants Persona to autolog.
<script src="https://login.persona.org/include.js"></script>
After this script, include the script persona_auth.js
provided with this bundle. You can use the stylesheet persona-buttons.css
to style login and logout button.
###5.Demo page PersonaBundle provides a demo page at /persona/demo. It uses assetic, so if you wants load this page, you have to add PersonaBundle to Assetic's bundles parameter. Create a user foo@bar.org with FOSUserBundle, signin with your mail, validate your email if this is the first time you use Persona, enjoy.