func PostToken(c *gin.Context) { user := session.User(c) token := token.New(token.UserToken, user.Login) tokenstr, err := token.Sign(user.Hash) if err != nil { c.AbortWithError(http.StatusInternalServerError, err) } else { c.String(http.StatusOK, tokenstr) } }
func GetUser(c *gin.Context) { user, err := store.GetUserLogin(c, c.Param("login")) if err != nil { c.AbortWithStatus(http.StatusNotFound) return } token := token.New(token.UserToken, user.Login) tokenstr, err := token.Sign(user.Hash) if err != nil { tokenstr = "" } userWithToken := struct { *model.User Token string `json:"token,omitempty"` }{user, tokenstr} c.IndentedJSON(http.StatusOK, userWithToken) }
func PostUser(c *gin.Context) { in := &struct { model.User Token string `json:"oauth_token"` }{} err := c.Bind(in) if err != nil { c.String(http.StatusBadRequest, err.Error()) return } user := &model.User{} user.Login = in.Login user.Email = in.Email user.Admin = in.Admin user.Token = in.Token user.Avatar = in.Avatar user.Active = true user.Hash = crypto.Rand() err = store.CreateUser(c, user) if err != nil { c.String(http.StatusInternalServerError, err.Error()) return } token := token.New(token.UserToken, user.Login) tokenstr, err := token.Sign(user.Hash) if err != nil { tokenstr = "" } userWithToken := struct { *model.User Token string `json:"token,omitempty"` }{user, tokenstr} c.IndentedJSON(http.StatusOK, userWithToken) }