簡體   English   中英

Play Framework用戶身份驗證/成員資格

[英]Play Framework User Authentication/Membership

我想在Play應用程序中支持用戶身份驗證。 它是Web App,我認為內置的“Secure”模塊對我的需求來說太簡單了。 實際上,用戶組討論了Secure模塊如何真正用於演示purproses。 但是,我該如何開發這樣的系統呢?

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

如果您唯一的特殊要求是某些頁面是公開可見的,我會得到您的答案: 播放框架:如何要求登錄某些操作,但不是全部 我剛剛復制了安全模塊,並做了一些小的補充。

您可以使用PlayPlugins。 我開始編寫一個以強大的方式啟用安全性的插件。 這是從BasisSecurity for Grails的遷移。 目前我沒有時間進一步發展。 您可以在此處查看當前狀態https://code.launchpad.net/~opensource21/+junk/permsec

從您的要求,當前的身份驗證模塊似乎足夠了 如果沒有,我為我的項目所做的是:

  • 將類從模塊(安全控制器,注釋,標記)復制到項目中
  • 擴展控制器添加其他功能

我沒有把我的代碼放在這里放樣,但總的來說我:

  • 重命名了這些課程(如果我說一個名字意味着另一個,請道歉,不記得原來的名字!)
  • 在Secure Controller中添加了處理OpenId和OAUth身份驗證的方法
  • 我的用戶模型中添加了支持方法,給定服務的ID(Google OpenId,Twitter id等)從具有該ID的DB返回現有用戶,或者如果它不存在則創建並返回鏈接到該用戶的新用戶ID。
  • 向User類添加了一些標志(如admin,supervisor等)
  • 修改了安全控制器中的檢查方法,以便使用用戶的標志檢查注釋的值。 像(偽代碼)的東西

    var ok:Boolean = false ok = ok || (annotation.value ==“admin”&& currentUser.isadmin)ok = ok || (annotation.value ==“supervisor”&& currentUser.issupervisor)...

  • 將注釋添加到相應的方法中,並將安全控制器(通過@With)添加到需要訪問檢查的類中

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

不知道它是否可以幫助你,但看看deadbolt模塊來管理視圖/控制器的訪問權限......
http://www.playframework.org/modules/deadbolt-1.0/home

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM