1

我正在关注用户授权的 y-book 示例,并计划将其放入脚手架示例中:显示第一页,有登录链接,如果使用 browserId 登录成功,则让用户去博客。

y-wiki 上有一个很好的例子,但我想试试这个。所以,在Foundation.hs里面的“instance Yesod App where”

-- route name, then a boolean indicating if it's a write request
isAuthorized HomeR True = isMyAuth
isAuthorized BlogR _ = isMyAuth
-- anyone can access other pages
isAuthorized _ _ = return Authorized

在实例范围之外的那些之后:

isMyAuth = do
  mu <- maybeAuthId
  return $ case mu of
    Nothing -> AuthenticationRequired
    Just "mylog" -> Authorized
    Just _ -> Unauthorized "You must be an mylog"

例如 YesodAuthApp 在哪里

-- type AuthId App = UserId
type AuthId App = Text

并且还将 loginDest 更改为指向 BlogR。我应该如何使用 db-access 编写 getAuthId。我只想将它与 isMyAuth 函数中的相同文本“mylog”进行比较。通过将 getAuthId 注释掉,我们得到内部服务器错误。如果缺少此方法,是否可以阻止 ghc 编译?

getAuthId creds = return $ Just "mylog"

它似乎可以编译。但是,在“登录”之后,登录页面不会重定向到 BlogR 页面。

4

0 回答 0