# 用戶及后臺
我們在之前的章節已經看到如何開發一個WEB應用。嚴格的說,那只是前臺的應用。
一般而言,我們總還有一個后臺的應用,而后臺的應用一般也會要求用戶登錄。
所以在本章,我們詳細講述用戶和后臺的開發。
## 用戶
SF中的用戶概念和常規應用中的沒有什么不同。對用戶的驗證也有多種方法。詳情可以參考[SF官方文檔中的相關章節](http://symfony.com/doc/current/book/security.html)。
在本應用中,我們只采用最簡單的所謂Plain Authorization,而且用戶及密碼都以明文保存在配置文件中。
## `security.yml`
SF所有的安全配置都在`/app/config/security.yml`中,我們將該文件修改為:
~~~
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
providers:
in_memory:
memory:
users:
admin: { password: 123456, roles: [ 'ROLE_ADMIN' ] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/demo/secured/login$
security: false
secured_area:
pattern: ^/admin
anonymous: ~
http_basic:
realm: "Secured RSYWX Admin Area"
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
~~~
我們略作解釋。
* `encoders`一段中,說明我們的用戶驗證機制是plaintext,也就是明文的方式。
* `providers`一段中,說明我們的用戶是`in memory`方式,也就是說用戶信息存放在內存中。
* `firewalls`中,主要看`secured_area`中`pattern`的說明。`^/admin`表示類似`'/admin'`這樣的路徑是屬于受控路徑,需要驗證。
* `access_control`中,我們規定類似`/admin`這樣的目錄只能由具有`ROLE_ADMIN`權限的用戶訪問。
這里我們略微講一下驗證和授權的區別。
驗證是對一個用戶是否合法的判定。常規情形下,一個用戶用正確的密碼登錄系統后,就認為該用戶已經獲得驗證。
授權是對一個驗證用戶的進一步判定。在應用配置中,該用戶能做什么不能做什么是由授權來完成的。
## 后臺
本應用的后臺只是一些統計信息的顯示。具體編程不再贅述,顯示效果如下:

如果配置正確的話,在訪問該頁面之前,瀏覽器會彈出一個對話框,要求輸入用戶/密碼(我們的配置是admin/123456)。
- 引言
- 1 LAMP
- 1.1 安裝虛擬機
- 1.2 安裝Vagrant
- 1.3 安裝Ubuntu
- 1.4 安裝Apache 2
- 1.5 安裝PHP
- 1.6 安裝MySQL服務器
- 1.7 最后的微調
- 1.8 設置一個虛擬主機
- 1.9 一個趁手的IDE
- 2 Symfony 3和重要構件
- 2.1 Symfony 3
- 2.2 Doctrine
- 2.3 Twig
- 2.4 Composer
- 3 Symfony重要概念
- 3.1 MVC
- 3.2 Bundle/包
- 3.3 Route/路由
- 3.4 Controller/控制器
- 3.5 Entity/實體
- 3.6 Repository/倉庫
- 3.7 Template/模板
- 3.8 Test/測試
- 4 藏書管理程序的結構
- 5 創建應用
- 5.1 建立版本管理
- 5.2 建立數據庫
- 5.3 應用結構
- 5.4 建立數據庫實體
- 5.5 樣本數據
- 5.6 路由
- 5.7 模板
- 5.8 開始編寫首頁
- 5.9 書籍詳情頁面
- 5.10 書籍列表頁面
- 5.11 書籍搜索
- 6 用戶和后臺
- 7 結語