2011-02-27 63 views
8

我想在Play應用程序中支持用戶認證。這是Web應用程序,我認爲內置的「安全」模塊對於我的需求來說太簡單了。實際上,用戶組討論了安全模塊如何真正用於演示紫羅蘭。但是,我怎樣才能開發出這樣一個系統呢?Play框架用戶認證/成員資格

本質上,應用程序將允許用戶登錄,那麼他們將有自己的設置等整個申請中提出申請。有些頁面未經身份驗證的用戶可以查看,但如果客戶端已通過身份驗證,那麼這些頁面的視圖將會不同。很簡單的設置,但大多數文檔只是指簡單的安全模塊。

+0

我不明白爲什麼默認安全模塊不能滿足您的需求 – Ricardo 2011-02-28 08:32:36

+0

@Ricardo - 這絕對不是唯一的要求。 Secure Module有一個很好的框架,但你仍然需要實現OpenID/Facebook Connect/Password salting。有幾個模塊可以做更多的事情:SecureSocial和OpenID一次,但是SecureSocial是非常新的並且仍然有點粗糙,並且OpenID太基礎。 – ripper234 2011-11-29 09:57:42

回答

2

從您的要求當前的認證模塊似乎不夠。如果不是,我做了我的項目是:

  • 複製從模塊類(安全控制器,註釋,標籤)到項目
  • 擴展控制器添加額外的功能

我沒有我的代碼方便把樣品在這裏,但總的來說我:

  • 改名類(所以道歉,如果我說一個名字,意思是另一個不記得原來的名字!)
  • 在安全控制器中添加方法來處理OpenId和OAUth身份驗證
  • 在我的用戶模型中添加了支持方法,該方法在給定服務的Id(Google OpenId,Twitter ID等)的情況下使用該ID返回數據庫中的現有用戶,或者如果它不存在,則創建並返回鏈接到該ID的新用戶。
  • 加入一些標誌(如管理員,主管,等),以修改安全控制器檢查方法User類
  • ,因此會檢查與該用戶的標誌的註釋的值。類似的信息(僞)

    VAR確定:布爾=假 OK =確定|| (annotation.value == 「管理員」 & & currentUser.isadmin) OK =確定|| (annotation.value ==「監督員」 & & currentUser.issupervisor) ...

  • 添加註釋到相應的方法和TOT需要訪問檢查他補充類安全控制器(通過@With)

有了這個,我有一個安全的系統,它似乎工作得很好(手指交叉:P)