我需要在我的应用程序中要求多种身份验证类型; 特别是:应用程序的某些部分需要对dropbox进行身份验证,而某些部分则需要基于电子邮件的身份验证,例如browserID.
我怎么处理这个?
我可以将身份验证附加到子网站吗?由于YesodAuth类在所有示例中都将master foundation数据类型作为参数,因此我不知道如何做到这一点.
如果没有,还有其他方法吗?
我有一个公共回购,https://github.com/rlpowell/config.我曾经能够在没有任何ssh密钥(即来自cron)的情况下运行git pull,并且使用git@github.com:rlpowell/config.git URL(即SSH URL)工作正常.这不再有效,我不知道为什么,但它确实适用于我的两个朋友.
我希望能够在没有ssh密钥的情况下使用公共仓库,或者至少理解为什么它对我不起作用而且对其他人起作用.
这是一个尝试我的测试用例的朋友:
$ git clone git@github.com:rlpowell/config.git ; cd config ; (unset SSH_AUTH_SOCK ; ssh-add -l ; git pull )
Cloning into 'config'...
Warning: Permanently added the RSA host key for IP address '192.30.253.113' to the list of known hosts.
remote: Counting objects: 1061, done.
remote: Total 1061 (delta 0), reused 0 (delta 0), pack-reused 1061
Receiving objects: 100% (1061/1061), 544.42 KiB | 495.00 KiB/s, done.
Resolving deltas: 100% (632/632), done.
Checking connectivity... …Run Code Online (Sandbox Code Playgroud) 这样可行:
create ["archive.html"] $ do
route idRoute
compile $ do
posts <- (myRecentFirst gitTimes) =<< loadAll "posts/**"
let archiveCtx =
listField "posts" (postCtx allTags allCategories gitTimes) (return posts) `mappend`
constField "title" "Archives" `mappend`
(postCtx allTags allCategories gitTimes)
makeItem ""
>>= loadAndApplyTemplate "templates/archive.html" archiveCtx
>>= loadAndApplyTemplate "templates/default.html" archiveCtx
>>= relativizeUrls
Run Code Online (Sandbox Code Playgroud)
在archive.html中创建最近的帖子列表; 这是沼泽标准,它来自我认为的其中一个教程.除了postsCtx,这有点复杂,但在这里不应该相关.
但是,我想在正常帖子的侧边栏中列出一些最近的帖子.问题在于最近的帖子最终取决于他们自己.我试着从自己生成的列表中排除帖子本身,但我找不到一个好的地方去做.这是我到目前为止所得到的:
match "posts/**" $ do
route $ (gsubRoute "posts/" (const "")) `composeRoutes` setExtension "html"
compile $ do
recents <- (myRecentFirst gitTimes) =<< loadAll "posts/**"
let postsContext = postCtx allTags …Run Code Online (Sandbox Code Playgroud)