使用会话值从数据库中获取用户(Haskell - Yesod)

时间:2016-06-06 23:27:20

标签: session haskell authentication yesod

我希望使用会话值而不是Key从数据库获取用户信息。

使用此:

    getProfileR :: Handler Html
    getProfileR = do
    user <- runDB $ get404 $ lookupSession "_ID"
    defaultLayout $ do
        $(whamletFile "templates/profile.hamlet")

取而代之的是:

    getProfileR :: UserId -> Handler Html
    getProfileR uid = do
    user <- runDB $ get404 uid
    defaultLayout $ do
        $(whamletFile "templates/profile.hamlet")

有可能吗?不推荐吗?

1 个答案:

答案 0 :(得分:0)

lookupSession的类型是:

lookupSession :: MonadHandler m => Text -> m (Maybe Text)

所以我会尝试这样的事情:

    getProfileR :: Handler Html
    getProfileR = do
      uid <- lookupSession "_ID"
      user <- runDB $ get404 (Just uid)
      defaultLayout $ do
        $(whamletFile "templates/profile.hamlet")  
相关问题