用户及后台

我们在之前的章节已经看到如何开发一个WEB应用。严格的说,那只是前台的应用。

一般而言,我们总还有一个后台的应用,而后台的应用一般也会要求用户登录。

所以在本章,我们详细讲述用户和后台的开发。

用户

SF中的用户概念和常规应用中的没有什么不同。对用户的验证也有多种方法。详情可以参考SF官方文档中的相关章节

在本应用中,我们只采用最简单的所谓Plain Authorization,而且用户及密码都以明文保存在配置文件中。

security.yml

SF所有的安全配置都在/app/config/security.yml中,我们将该文件修改为:

  1. security:
  2. encoders:
  3. Symfony\Component\Security\Core\User\User: plaintext
  4. providers:
  5. in_memory:
  6. memory:
  7. users:
  8. admin: { password: 123456, roles: [ 'ROLE_ADMIN' ] }
  9. firewalls:
  10. dev:
  11. pattern: ^/(_(profiler|wdt)|css|images|js)/
  12. security: false
  13. login:
  14. pattern: ^/demo/secured/login$
  15. security: false
  16. secured_area:
  17. pattern: ^/admin
  18. anonymous: ~
  19. http_basic:
  20. realm: "Secured RSYWX Admin Area"
  21. access_control:
  22. - { path: ^/admin, roles: ROLE_ADMIN }

我们略作解释。

  • encoders一段中,说明我们的用户验证机制是plaintext,也就是明文的方式。
  • providers一段中,说明我们的用户是in memory方式,也就是说用户信息存放在内存中。
  • firewalls中,主要看secured_areapattern的说明。^/admin表示类似'/admin'这样的路径是属于受控路径,需要验证。
  • access_control中,我们规定类似/admin这样的目录只能由具有ROLE_ADMIN权限的用户访问。
    这里我们略微讲一下验证和授权的区别。

验证是对一个用户是否合法的判定。常规情形下,一个用户用正确的密码登录系统后,就认为该用户已经获得验证。

授权是对一个验证用户的进一步判定。在应用配置中,该用户能做什么不能做什么是由授权来完成的。

后台

本应用的后台只是一些统计信息的显示。具体编程不再赘述,显示效果如下:

6. 用户和后台  - 图1

如果配置正确的话,在访问该页面之前,浏览器会弹出一个对话框,要求输入用户/密码(我们的配置是admin/123456)。