我正在关注用户授权的 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 页面。