本文整理汇总了Golang中github.com/speedland/wcg.Router.After方法的典型用法代码示例。如果您正苦于以下问题:Golang Router.After方法的具体用法?Golang Router.After怎么用?Golang Router.After使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/speedland/wcg.Router
的用法示例。
在下文中一共展示了Router.After方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: registerAuthHandlers
func registerAuthHandlers(routes *wcg.Router) {
middleware.SessionConfigIni.StoreFactory = gae.GAESessionStoreFactory
sessionBefore, sessionAfter := middleware.SessionSupport()
fbconfig := facebookConfig()
fbauth, fbcallback, fbvalidates, fblogout := middleware.OAuth2(fbconfig)
csrf := middleware.CSRFSupport()
// resolve the access user
routes.Before(func(res *wcg.Response, req *wcg.Request) {
if apiTokenAuthHandler(res, req) {
req.Logger.Debug("Api Token Auth: Yes")
req.SetLocal(LOCAL_KEY_AUTH_TYPE, AUTH_TYPE_API_TOKEN)
return
}
req.Logger.Debug("Api Token Auth: No")
if cronAuthHandler(res, req) {
req.Logger.Debug("Cron Auth: Yes")
req.SetLocal(LOCAL_KEY_AUTH_TYPE, AUTH_TYPE_CRON)
return
}
req.Logger.Debug("Cron Auth: No")
if ahAuthHandler(res, req) {
req.Logger.Debug("Ah Auth: Yes")
req.SetLocal(LOCAL_KEY_AUTH_TYPE, AUTH_TYPE_AH)
return
}
req.Logger.Debug("Ah Auth: No")
req.Logger.Debug("Session Auth: Yes")
sessionBefore(res, req)
res.SetLocal(LOCAL_KEY_AUTH_TYPE, AUTH_TYPE_COOKIE)
fbvalidates(res, req)
res.SetLocal("fb_app_id", fbconfig.ClientId)
res.SetLocal("wcg_user", util.FormatJson(map[string]interface{}{
"id": req.User.Id(),
"display_name": req.User.DisplayName(),
"image_link": req.User.ImageLink(),
"profile_link": req.User.ProfileLink(),
"last_login": req.User.LastLogin(),
"user_kind": GetUserKind(req),
}))
if req.Method() != "GET" && req.Method() != "HEAD" {
csrf(res, req)
}
})
// AUthorization Endpoint
routes.Get("/login/facebook", func(res *wcg.Response, req *wcg.Request) {
if req.Query("ref") != "" {
req.Session.Set(SESSION_KEY_LOGIN_REF, req.Query("ref"))
}
fbauth(res, req)
})
routes.Get("/login/facebook/callback", fbcallback)
routes.Post("/logout/facebook", func(res *wcg.Response, req *wcg.Request) {
fblogout(res, req)
res.Redirect("/", http.StatusFound)
})
// Save the session data
routes.After(func(res *wcg.Response, req *wcg.Request) {
if auth_type, ok := res.Local(LOCAL_KEY_AUTH_TYPE).(string); ok && auth_type == AUTH_TYPE_COOKIE {
sessionAfter(res, req)
}
})
}