0
我正在構建一個需要對工作人員和客戶進行身份驗證的Snap的Web應用程序。到目前爲止,我使用snaplet-postgresql-simple
提供的認證snaplet從數據庫中的同一個表中認證兩種類型的用戶。使用Snap進行身份驗證:使用snaplet幾次
初始化代碼因此看起來是這樣的:
s <- nestSnaplet "sess" sess $ initCookieSessionManager sessionKeyfile "sess" Nothing (Just sessionTimeout)
db <- nestSnaplet "pg" pg Pg.pgsInit
a <- nestSnaplet "auth" auth $ initPostgresAuth sess db
我考慮了兩種類型的用戶分成兩個表這些原因:
- 每種類型的相關信息用戶(即列)實際上是不同的(例如,我不需要知道職員的姓名)
- 我想允許員工對後臺進行身份驗證而不登錄前端(我需要單獨的cookie,那麼,我猜)
- 我想,如果這兩種類型的用戶都在不同的表
我使用的snaplets的兩個實例PostgreSQL的,簡單的考慮安全性可能會受益和會議。然後
初始化代碼會是這個樣子:
s1 <- nestSnaplet "sess1" sess1 $ initCookieSessionManager sessionKeyfile "sess1" Nothing (Just sessionTimeout)
s2 <- nestSnaplet "sess2" sess2 $ initCookieSessionManager sessionKeyfile "sess2" Nothing (Just sessionTimeout)
db <- nestSnaplet "pg" pg Pg.pgsInit
a1 <- nestSnaplet "auth1" auth1 $ initPostgresAuth sess1 db
a2 <- nestSnaplet "auth2" auth2 $ initPostgresAuth sess2 db
這有可能使用像這樣的snaplet的多個實例? 或者我的問題有更好的解決方案嗎?