我正在使用Snap构建一个需要对员工和客户进行身份验证的Web应用程序。到目前为止,我使用snaplet-postgresql-simple
提供的auth snaplet来验证数据库中同一个表中的两种类型的用户。
因此初始化代码如下所示:
s <- nestSnaplet "sess" sess $ initCookieSessionManager sessionKeyfile "sess" Nothing (Just sessionTimeout)
db <- nestSnaplet "pg" pg Pg.pgsInit
a <- nestSnaplet "auth" auth $ initPostgresAuth sess db
我考虑将这两类用户分成两个表:
我考虑将两个snaplet实例用于postgresql-simple和sessions。
初始化代码看起来像这样:
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的几个实例吗? 或者我的问题有更好的解决方案吗?
答案 0 :(得分:0)
我不会使用两个实例。我使用单个实例,其中用户表示两者共有的任何内容,然后添加用户类型列并将额外信息放在与外键链接的其他表中。