| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package model
- import (
- "errors"
- "github.com/dgrijalva/jwt-go"
- "github.com/gin-gonic/gin"
- "net/http"
- "rocommon/util"
- "time"
- )
- func UserLogin(c *gin.Context) {
- userName := c.DefaultQuery("name", "") ///default ""
- pass := c.DefaultQuery("pass", "")
- if userName != "wtgame" || pass != "wtgame123" {
- c.JSON(http.StatusOK, "请输入正确的用户名和密码")
- return
- }
- claims := &jwt.StandardClaims{}
- claims.IssuedAt = util.GetTimeSeconds()
- claims.ExpiresAt = util.GetCurrentTimeNow().Add(time.Second * time.Duration(3600)).Unix()
- signedToken, err := getToken(claims)
- if err != nil {
- c.String(http.StatusNotFound, err.Error())
- return
- }
- c.Writer.Header().Add("Authorization", signedToken)
- c.String(http.StatusOK, signedToken)
- }
- func getToken(claims *jwt.StandardClaims) (string, error) {
- token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
- signedToken, err := token.SignedString([]byte("wtgame123"))
- if err != nil {
- return "", errors.New("token invalid")
- }
- return signedToken, nil
- }
- func VerifyAction(tokenStr string) (*jwt.StandardClaims, error) {
- token, err := jwt.ParseWithClaims(tokenStr, &jwt.StandardClaims{},
- func(token *jwt.Token) (interface{}, error) {
- return []byte("wtgame123"), nil
- })
- if err != nil {
- return nil, errors.New("verify error")
- }
- claims, ok := token.Claims.(*jwt.StandardClaims)
- if !ok {
- return nil, errors.New("verify relogin")
- }
- if err := token.Claims.Valid(); err != nil {
- return nil, errors.New("verify relogin")
- }
- return claims, nil
- }
|