proxiweb / persona-bundle
Symfony2 Mozilla的Persona安全扩展
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: 2024-09-28 14:40:46 UTC
README
Mozilla Persona认证适用于Symfony2
使用此包,您可以为您的Symfony2项目轻松设置Mozilla Persona认证。
先决条件
此版本的包需要Symfony 2.1+和FOSUserBundle。
安装
在您的composer.json中添加PersonaBundle
{ "require": { "proxiweb/persona-bundle": "*" } }
在AppKernel.php中添加PersonaBundle
... new Proxiweb\Bundle\PersonaBundle\ProxiwebPersonaBundle(),
现在,运行以下命令让composer下载包
$ php composer.phar update proxiweb/persona-bundle
Composer会将包安装到您的项目的vendor/proxiweb
目录中。
配置
- 配置FOSUserBundle
- 通过电子邮件登录
- 认证URL配置
- 添加Persona的资产
- 演示页面
###2.通过电子邮件登录Persona通过电子邮件认证用户,因此您必须配置FOSUserBundle以启用通过电子邮件登录
# 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.认证URL配置Persona通过执行对执行认证的URL的ajax请求来记录用户。PersonaBundle通过访问受保护的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.添加Persona的资产
将脚本添加到执行认证的页面以及您希望Persona自动登录的页面。
<script src="https://login.persona.org/include.js"></script>
在此脚本之后,包含此包提供的persona_auth.js
脚本。您可以使用persona-buttons.css
样式表来设计登录和注销按钮。
###5.演示页面PersonaBundle在/persona/demo提供演示页面。它使用assetic,因此如果您想加载此页面,您必须将PersonaBundle添加到Assetic的包参数中。使用FOSUserBundle创建用户foo@bar.org,使用您的邮件登录,如果这是您第一次使用Persona,验证您的电子邮件,享受吧。