2018/05/03

SampleCMS 前台網頁預覽功能驗證方式說明

SampleCMS 後台管理功能「網站架構管理」提供預覽尚未開放的前台網頁內容功能。
使用的方式如同操作手冊「3.1.使用情境:檢視指定網頁資料」提到的,
"若指定的網頁資料狀態是隱藏的或者不在上架期間,則檢視鈕會變更為預覽鈕,此時點選指定語系的預覽鈕,系統將以預覽模式開啟未開放的前台網頁,並且在前台網頁中出現「您正使用預覽模式檢視本頁」的提醒訊息

* 基於保密的原則,每一次用來預覽指定的前台網頁網址有時效限制,目前為10分鐘,當預覽用的網址產生超過10分鐘且繼續被用來開啟網頁時將導向錯誤頁,此時若還需要預覽指定的前台網頁,請回到網頁管理畫面點選預覽鈕重新產生。"

以下說明前台網頁預覽功能驗證方式,

預覽尚未開放的前台網頁內容時,為了只讓管理者使用這個功能,不讓任何人隨意的或不小心看到網頁內容,因此每次在預覽前台網頁時,都必須驗證瀏覽網頁的使用者是否已登入後台管理系統。

SampleCMS 採用簡化版的單一登入驗證流程實作這項功能。
驗證流程簡介如下,
  1. 使用者要求預覽未開放的前台網頁。
  2. 前台系統要求瀏覽器跳轉到後台系統單一登入驗證入口。
  3. 後台系統確認使用者是否已登入,若未登入則提前結束此流程,
    若已登入則產生一段加密值,後台系統要求瀏覽器跳轉到前台網頁,使用此加密值重新開啟指定的前台網頁。
  4. 前台網頁驗證加密值,若驗證失敗則提前結束此流程,若驗證成功則呈現網頁內容並且提示使用者目前為預覽模式。

下圖為詳細的前台網頁預覽功能驗證流程,
前台網頁預覽功能驗證方式循序圖

  1. 使用者要求預覽未開放的網頁內容(加參數 preview = 1)。
  2. 網頁程式使用共用元件 FrontendPageCommon 取得直接開啟或是在預覽模式的網頁代碼與網頁資料。
  3. FrontendPageCommon 依照網址參數 preview, alias, artid 取得網頁代碼。
  4. 當 preview = 1,要求瀏覽器跳轉到後台系統單一登入驗證入口,帶參數 token:加密值, location:前台網頁URL, artid:指定的網頁代碼, l:語系, preview:1。
  5. 後台系統確認使用者是否已登入,若未登入則系統自動跳轉至登入頁。
  6. 後台系統驗證所有參數的格式與內容(token, location, artid, l, preview)。
  7. 後台系統將登入資訊網頁代碼加密放置在準備送出的參數 preview。
  8. 後台系統要求瀏覽器跳轉到 location 指定的前台網頁,帶參數 preview:前項的加密值, l:語系。
  9. 同項目 2
  10. 同項目 3
  11. 當 preview ! = 1,FrontendPageCommon 解密與驗證 preview 值,從中取得網頁代碼。
  12. FrontendPageCommon 取得網頁代碼對應的網頁資料。
  13. FrontendPageCommon 把網頁資料暫存在 ArticleData 物件。
  14. 網頁程式透過 FrontendPageCommon 取得暫存網頁資料的 ArticleData 物件。
  15. 網頁程式呈現網頁內容。




沒有留言:

張貼留言