本文整理汇总了Golang中github.com/go-macaron/session.Store类的典型用法代码示例。如果您正苦于以下问题:Golang Store类的具体用法?Golang Store怎么用?Golang Store使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Store类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: unmarshallToken
func unmarshallToken(s session.Store) (t *Token) {
if s.Get(KEY_TOKEN) == nil {
return
}
data := s.Get(KEY_TOKEN).([]byte)
var tk Token
json.Unmarshal(data, &tk)
return &tk
}
开发者ID:cyuxlif,项目名称:oauth2,代码行数:9,代码来源:social.go
示例2: SignedInID
// SignedInID returns the id of signed in user.
func SignedInID(ctx *macaron.Context, sess session.Store) int64 {
if !models.HasEngine {
return 0
}
// Check access token.
if IsAPIPath(ctx.Req.URL.Path) {
tokenSHA := ctx.Query("token")
if len(tokenSHA) == 0 {
// Well, check with header again.
auHead := ctx.Req.Header.Get("Authorization")
if len(auHead) > 0 {
auths := strings.Fields(auHead)
if len(auths) == 2 && auths[0] == "token" {
tokenSHA = auths[1]
}
}
}
// Let's see if token is valid.
if len(tokenSHA) > 0 {
t, err := models.GetAccessTokenBySHA(tokenSHA)
if err != nil {
if models.IsErrAccessTokenNotExist(err) {
log.Error(4, "GetAccessTokenBySHA: %v", err)
}
return 0
}
t.Updated = time.Now()
if err = models.UpdateAccessToekn(t); err != nil {
log.Error(4, "UpdateAccessToekn: %v", err)
}
return t.UID
}
}
uid := sess.Get("uid")
if uid == nil {
return 0
}
if id, ok := uid.(int64); ok {
if _, err := models.GetUserByID(id); err != nil {
if !models.IsErrUserNotExist(err) {
log.Error(4, "GetUserById: %v", err)
}
return 0
}
return id
}
return 0
}
开发者ID:cuteluo1983,项目名称:gogs,代码行数:52,代码来源:auth.go
示例3: login
func login(ctx *macaron.Context, s session.Store, opt *Options) {
next := extractPath(ctx.Query(KEY_NEXT_PAGE))
if s.Get(KEY_TOKEN) == nil {
// User is not logged in.
if next == "" {
next = AppSubUrl + "/"
}
// println(111, opt.AuthCodeURL(next, "", ""))
ctx.Redirect(opt.AuthCodeURL(next, "", ""))
return
}
// No need to login, redirect to the next page.
ctx.Redirect(next)
}
开发者ID:cyuxlif,项目名称:oauth2,代码行数:14,代码来源:social.go
示例4: handleOAuth2Callback
func handleOAuth2Callback(ctx *macaron.Context, s session.Store, opt *Options) {
next := extractPath(ctx.Query("state"))
code := ctx.Query("code")
t, err := opt.NewTransportFromCode(code)
if err != nil {
// Pass the error message, or allow dev to provide its own
// error handler.
println(err.Error())
ctx.Redirect(PathError)
return
}
// Store the credentials in the session.
val, _ := json.Marshal(t.Token())
s.Set(KEY_TOKEN, val)
ctx.Redirect(next)
}
开发者ID:cyuxlif,项目名称:oauth2,代码行数:16,代码来源:social.go
示例5: ApiSignin
//----------------------------------------------------------
// POST /api/account/signin/
func ApiSignin(c *macaron.Context, f SigninForm, a token.TokenService, ss session.Store) {
u := &models.Users{}
if !u.CheckSignin(f.Input, f.Password) {
c.JSON(200, comps.NewRestErrResp(-1, "输入正确的帐号或密码"))
return
}
s := NewService()
if err, ok := s.CheckSignin(u); !ok {
c.JSON(200, comps.NewRestErrResp(-1, err))
return
}
// 需要审批
if u.GroupId == models.GroupNotValidated &&
boot.SysSetting.Ra.RegisterValidType == models.RegValidApproval {
c.JSON(200, comps.NewRestRedirectResp("/a/validapproval/"))
return
}
//
u.LastLogin = time.Now()
u.LastIp = c.RemoteAddr()
u.LoginCount = u.LoginCount + 1
if _, ok := models.NewTr().Update(u, "LastLogin", "LastIp", "LoginCount"); !ok {
// todo log
}
CleanCookies(c, ss)
SetSigninCookies(c, u, a, ss)
url := ""
if !u.ValidEmail && boot.SysSetting.Ra.RegisterValidType == models.RegValidEmail {
ss.Set("validemail", u.Email)
url = "/a/validemail/"
} else if u.FirstLogin {
url = "/h/firstlogin/"
} else if f.ReturnUrl != "" {
url = f.ReturnUrl
}
c.JSON(200, comps.NewRestRedirectResp(url))
}
开发者ID:xtfly,项目名称:goman,代码行数:45,代码来源:apis.go
示例6: ApiUserSignup
//----------------------------------------------------------
// POST /api/account/signup/
func ApiUserSignup(f SignupForm, c *macaron.Context, cpt *captcha.Captcha,
a token.TokenService, ss session.Store) {
if !a.ValidToken(c.RemoteAddr(), f.CsrfToken) {
c.JSON(200, comps.NewRestErrResp(-1, "非法的跨站请求"))
return
}
if !cpt.VerifyReq(c.Req) {
c.JSON(200, comps.NewRestResp(comps.NewCaptcha(cpt), -1, "请填写正确的验证码"))
return
}
s := NewService()
u, msg, ok := s.Signup(f, c.RemoteAddr())
if !ok {
c.JSON(200, comps.NewRestResp(comps.NewCaptcha(cpt), -1, msg))
return
}
// 如果不需要email验证
if boot.SysSetting.Ra.RegisterValidType == models.RegValidNone ||
u.GroupId != models.GroupNotValidated ||
u.ValidEmail {
SetSigninCookies(c, u, a, ss)
c.JSON(200, comps.NewRestRedirectResp("/h/firstlogin"))
return
}
ss.Set("validemail", u.Email)
if !models.NewValidByEmail(models.NewTr(), u.Id, u.Email) {
c.JSON(200, comps.NewRestErrResp(-1, "内部系统错误"))
return
}
SetSigninCookies(c, u, a, ss)
c.JSON(200, comps.NewRestRedirectResp("/a/validemail/"))
return
}
开发者ID:xtfly,项目名称:goman,代码行数:40,代码来源:apis.go
示例7: CleanCookies
//----------------------------------------------------------
// 清理Cookie信息
func CleanCookies(c *macaron.Context, ss session.Store) {
c.SetCookie("utoken", "", -60*60)
ss.Release()
}
开发者ID:xtfly,项目名称:goman,代码行数:6,代码来源:service.go
示例8: SetSigninCookies
//----------------------------------------------------------
// 设置Cookie信息
func SetSigninCookies(c *macaron.Context, u *models.Users, a token.TokenService, ss session.Store) {
t, _ := a.GenUserToken(c.RemoteAddr(), u.Id, 24*60, token.TokenUser)
c.SetCookie("utoken", t, 24*60*60) // Name, Value, MaxAge, Path, Domain, Secure, HttpOnly
ss.Set("utoken", t)
}
开发者ID:xtfly,项目名称:goman,代码行数:7,代码来源:service.go
示例9: Index
func Index(ctx *macaron.Context, sess session.Store, r renders.Render) {
ctx.Data["hi"] = "Hello world!"
ctx.Data["username"] = sess.Get("username")
r.HTML(200, "index/index.html", ctx.Data)
}
开发者ID:myafeier,项目名称:GoCMS,代码行数:5,代码来源:index.go
示例10: logout
func logout(ctx *macaron.Context, s session.Store) {
next := extractPath(ctx.Query(KEY_NEXT_PAGE))
s.Delete(KEY_TOKEN)
ctx.Redirect(next)
}
开发者ID:cyuxlif,项目名称:oauth2,代码行数:5,代码来源:social.go
注:本文中的github.com/go-macaron/session.Store类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论