簡體   English   中英

用戶認證 - Play 框架,Java

[英]User Authentication - Play Framework, Java

我是 Play 框架的新手。 我正在通過創建各種類型的場景來練習(Play + Java),例如與數據庫鏈接、使用 JPA 從數據庫中檢索數據、主詳細信息表單、將數據保存到數據庫等。

我想實現用戶身份驗證。 用戶登錄到應用程序。 要訪問應用程序用戶必須有授權。

例如:員工 - 添加/編輯/查看/刪除。 一些用戶可能擁有所有權限,而一些用戶只有查看或添加/編輯/刪除或僅編輯。 即使在員工編輯選項中,用戶也只能編輯某些字段,例如不允許員工姓名但員工地址可以編輯。 即現場級授權。

謝謝

  1. 使用身份驗證控制器檢查用戶登錄 ID/密碼class AuthController @Inject()(cache: CacheApi, cached: Cached, actorSystem: ActorSystem) extends Controller {

  2. 如果 id/password 正確,則生成一個 UUID 密鑰,並使用 UUID 密鑰將用戶對象 (uservo) 存儲在內存緩存中。 密鑰可以存儲在瀏覽器 cookie 中。

val cacheTimeout = 10.minutes val key = UUID.randomUUID.toString cache.set(key, uservo, cacheTimeout) Ok().withSession( request.session + ("key" -> key) )

  1. 我們可以在以下 html 請求中獲取帶有“key”值的 cookie。 如果可以從內存緩存中檢索密鑰,則用戶可以執行該操作。 記得重新設置cookie值,否則內存緩存中緩存的uservo會在10分鍾后超時

(request.session.get("key").flatMap { key => cache.get[Uservo](key) } map { uservo => // need to set cache with "key" again, or else the memory will timeout in 10 minutes cache.set(request.session.get("key").get, uservo, cacheTimeout) // do the action.. }).orElse { // failed and return to login home page Some(Future(Redirect("/").withNewSession)) }

暫無
暫無

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

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