本文整理汇总了Golang中github.com/QLeelulu/goku.HttpContext.SetCookie方法的典型用法代码示例。如果您正苦于以下问题:Golang HttpContext.SetCookie方法的具体用法?Golang HttpContext.SetCookie怎么用?Golang HttpContext.SetCookie使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/QLeelulu/goku.HttpContext
的用法示例。
在下文中一共展示了HttpContext.SetCookie方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ThirdParty_SaveThirdPartyProfileToSession
func ThirdParty_SaveThirdPartyProfileToSession(
ctx *goku.HttpContext,
profile *ThirdPartyUserProfile) (err error) {
providerName := profile.ProviderName
sessionKeyBase := thirdParty_GetSessionKeyBase(providerName, profile.Id)
profileSessionId := ThirdParty_GetThirdPartyProfileSessionId(sessionKeyBase)
expires := time.Now().Add(time.Duration(3600) * time.Second)
b, _ := json.Marshal(profile)
s := string(b)
err = SaveItemToSession(profileSessionId, s, expires)
if err != nil {
return
}
c := &http.Cookie{
Name: config.ThirdPartyCookieKey,
Value: sessionKeyBase,
Expires: expires,
Path: "/",
HttpOnly: true,
}
ctx.SetCookie(c)
return
}
示例2: setCookieForOtherPlatformUser
//为别的平台用户写cookie
func setCookieForOtherPlatformUser(userId int64, email string, seconds int, ctx *goku.HttpContext) {
//注册成功,写cookie
now := time.Now()
h := md5.New()
h.Write([]byte(fmt.Sprintf("%v-%v", email, now.Unix())))
ticket := fmt.Sprintf("%x_%v", h.Sum(nil), now.Unix())
expires := now.Add(time.Duration(seconds) * time.Second)
redisClient := models.GetRedis()
defer redisClient.Quit()
err := redisClient.Set(ticket, userId)
if err != nil {
goku.Logger().Errorln(err.Error())
} else {
_, err = redisClient.Expireat(ticket, expires.Unix())
if err != nil {
goku.Logger().Errorln(err.Error())
}
c := &http.Cookie{
Name: "_glut",
Value: ticket,
Expires: expires,
Path: "/",
HttpOnly: true,
}
ctx.SetCookie(c)
}
}
示例3: thirdParty_ClearThirdPartyProfileFromSession
func thirdParty_ClearThirdPartyProfileFromSession(ctx *goku.HttpContext) {
sessionIdBase := ctx.Data["thirdPartySessionIdBase"].(string)
sessinId := ThirdParty_GetThirdPartyProfileSessionId(sessionIdBase)
RemoveItemFromSession(sessinId)
c := &http.Cookie{
Name: config.ThirdPartyCookieKey,
Expires: time.Now().Add(-10 * time.Second),
Path: "/",
}
ctx.SetCookie(c)
}
示例4: discover_index
// 发现 首页
func discover_index(ctx *goku.HttpContext) goku.ActionResulter {
ot := ctx.Get("o")
if ot == "" {
ot = "hot"
}
dt, _ := strconv.Atoi(ctx.Get("dt"))
ctx.ViewData["Order"] = ot
links, _ := models.LinkForHome_GetByPage(ot, dt, 1, golink.PAGE_SIZE)
ctx.ViewData["Links"] = models.Link_ToVLink(links, ctx)
ctx.ViewData["TopTab"] = "discover"
ctx.ViewData["HasMoreLink"] = len(links) >= golink.PAGE_SIZE
// 最新链接的未读提醒
var userId, lastReadLinkId int64
unreadCookieName := "newestUnrLinkId"
u, ok := ctx.Data["user"]
if ok && u != nil {
user := u.(*models.User)
userId = user.Id
lastReadLinkId = user.LastReadLinkId
} else {
// 从Cook读取最后一次阅读的链接id
cLastReadLinkId, err := ctx.Request.Cookie(unreadCookieName)
if err == nil {
lastReadLinkId, _ = strconv.ParseInt(cLastReadLinkId.Value, 10, 64)
}
}
if ot == "hot" {
newestUnreadCount, _ := models.NewestLinkUnread_All(userId, lastReadLinkId)
ctx.ViewData["NewestUnreadCount"] = models.NewestLinkUnread_ToString(userId, newestUnreadCount)
} else if ot == "time" && links != nil && len(links) > 0 {
if userId > 0 {
models.NewestLinkUnread_UpdateForAll(userId, links[0].Id)
} else {
c := &http.Cookie{
Name: unreadCookieName,
Value: fmt.Sprintf("%d", links[0].Id),
Expires: time.Now().AddDate(0, 1, 0),
Path: "/",
HttpOnly: true,
}
ctx.SetCookie(c)
}
}
return ctx.Render("/home/index", nil)
}