Commit 1255af4a authored by haoyanbin's avatar haoyanbin

Login

parent f214784a
...@@ -6,11 +6,12 @@ import ( ...@@ -6,11 +6,12 @@ import (
"github.com/go-admin-team/go-admin-core/sdk/api" "github.com/go-admin-team/go-admin-core/sdk/api"
"github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user" "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth/user"
_ "github.com/go-admin-team/go-admin-core/sdk/pkg/response" _ "github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"go-admin/app/mobile/service" "go-admin/app/mobile/service"
"go-admin/app/mobile/service/dto" "go-admin/app/mobile/service/dto"
"go-admin/app/operate/models" "go-admin/app/operate/models"
"go-admin/common/actions" "go-admin/common/actions"
"go-admin/common/utils"
"strconv"
) )
type OrgPlayerUser struct { type OrgPlayerUser struct {
...@@ -52,7 +53,7 @@ func (e OrgPlayerUser) Login(c *gin.Context) { ...@@ -52,7 +53,7 @@ func (e OrgPlayerUser) Login(c *gin.Context) {
//自建token生成 //自建token生成
reply := new(dto.LoginReply) reply := new(dto.LoginReply)
//token, _ := utils.GenToken(int64(data.Id)) token, _ := utils.GenToken(int64(data.Id))
// //
//a,_ := jwt.New(&jwt.GinJWTMiddleware{ //a,_ := jwt.New(&jwt.GinJWTMiddleware{
// Realm: "test zone", // Realm: "test zone",
...@@ -68,8 +69,8 @@ func (e OrgPlayerUser) Login(c *gin.Context) { ...@@ -68,8 +69,8 @@ func (e OrgPlayerUser) Login(c *gin.Context) {
// TokenHeadName: "Bearer", // TokenHeadName: "Bearer",
// TimeFunc: time.Now, // TimeFunc: time.Now,
//}) //})
//reply.Token = a. reply.Token = token
//reply.PlayerUserId = strconv.Itoa(data.Id) reply.PlayerUserId = strconv.Itoa(data.Id)
e.OK(reply, "查询成功") e.OK(reply, "查询成功")
} }
......
...@@ -7,7 +7,6 @@ import ( ...@@ -7,7 +7,6 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
log "github.com/go-admin-team/go-admin-core/logger" log "github.com/go-admin-team/go-admin-core/logger"
"github.com/go-admin-team/go-admin-core/sdk" "github.com/go-admin-team/go-admin-core/sdk"
common "go-admin/common/middleware"
) )
// InitRouter 路由初始化,不要怀疑,这里用到了 // InitRouter 路由初始化,不要怀疑,这里用到了
...@@ -26,11 +25,6 @@ func InitRouter() { ...@@ -26,11 +25,6 @@ func InitRouter() {
os.Exit(-1) os.Exit(-1)
} }
authMiddleware, err := common.AuthInit()
if err != nil {
log.Fatalf("JWT Init Error, %s", err.Error())
}
// 注册业务路由 // 注册业务路由
initRouter(r, authMiddleware) initRouter(r)
} }
...@@ -2,8 +2,6 @@ package router ...@@ -2,8 +2,6 @@ package router
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis" "go-admin/app/mobile/apis"
) )
...@@ -12,9 +10,9 @@ func init() { ...@@ -12,9 +10,9 @@ func init() {
} }
// registerOrgLeagueRouter // registerOrgLeagueRouter
func registerOrgLeagueRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { func registerOrgLeagueRouter(v1 *gin.RouterGroup) {
api := apis.OrgLeague{} api := apis.OrgLeague{}
r := v1.Group("/org-league").Use(authMiddleware.MiddlewareFunc()) r := v1.Group("/org-league").Use()
{ {
r.GET("", api.GetPage) r.GET("", api.GetPage)
r.GET("/:id", api.Get) r.GET("/:id", api.Get)
......
...@@ -2,10 +2,7 @@ package router ...@@ -2,10 +2,7 @@ package router
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis" "go-admin/app/mobile/apis"
"go-admin/common/middleware"
) )
func init() { func init() {
...@@ -13,9 +10,9 @@ func init() { ...@@ -13,9 +10,9 @@ func init() {
} }
// registerOrgNewsRouter // registerOrgNewsRouter
func registerOrgNewsRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { func registerOrgNewsRouter(v1 *gin.RouterGroup) {
api := apis.OrgNews{} api := apis.OrgNews{}
r := v1.Group("/org-news").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) r := v1.Group("/org-news")
{ {
r.GET("", api.GetPage) r.GET("", api.GetPage)
r.GET("/:id", api.Get) r.GET("/:id", api.Get)
......
...@@ -2,10 +2,7 @@ package router ...@@ -2,10 +2,7 @@ package router
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/operate/apis" "go-admin/app/operate/apis"
"go-admin/common/middleware"
) )
func init() { func init() {
...@@ -13,9 +10,9 @@ func init() { ...@@ -13,9 +10,9 @@ func init() {
} }
// registerOrgPlayerRouter // registerOrgPlayerRouter
func registerOrgPlayerRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { func registerOrgPlayerRouter(v1 *gin.RouterGroup) {
api := apis.OrgPlayer{} api := apis.OrgPlayer{}
r := v1.Group("/org-player").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) r := v1.Group("/org-player").Use()
{ {
r.GET("", api.GetPage) r.GET("", api.GetPage)
r.GET("/:id", api.Get) r.GET("/:id", api.Get)
......
...@@ -2,10 +2,7 @@ package router ...@@ -2,10 +2,7 @@ package router
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis" "go-admin/app/mobile/apis"
"go-admin/common/middleware"
) )
func init() { func init() {
...@@ -13,9 +10,9 @@ func init() { ...@@ -13,9 +10,9 @@ func init() {
} }
// registerOrgTeamPlayerRouter // registerOrgTeamPlayerRouter
func registerOrgPlayerRankRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { func registerOrgPlayerRankRouter(v1 *gin.RouterGroup) {
api := apis.OrgPlayerRank{} api := apis.OrgPlayerRank{}
r := v1.Group("/org-player-rank").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) r := v1.Group("/org-player-rank")
{ {
r.GET("", api.GetPage) r.GET("", api.GetPage)
} }
......
...@@ -2,10 +2,7 @@ package router ...@@ -2,10 +2,7 @@ package router
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis" "go-admin/app/mobile/apis"
"go-admin/common/middleware"
) )
func init() { func init() {
...@@ -14,9 +11,9 @@ func init() { ...@@ -14,9 +11,9 @@ func init() {
} }
// registerOrgPlayerUserRouter // registerOrgPlayerUserRouter
func registerOrgPlayerUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) { func registerOrgPlayerUserRouter(v1 *gin.RouterGroup) {
api := apis.OrgPlayerUser{} api := apis.OrgPlayerUser{}
r := v1.Group("/org-player-user").Use(authMiddleware.MiddlewareFunc()).Use(middleware.AuthCheckRole()) r := v1.Group("/org-player-user")
{ {
r.GET("", api.GetPage) r.GET("", api.GetPage)
r.GET("/:id", api.Get) r.GET("/:id", api.Get)
......
...@@ -2,21 +2,21 @@ package router ...@@ -2,21 +2,21 @@ package router
import ( import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth" "go-admin/common/middleware"
) )
var ( var (
routerNoCheckRole = make([]func(*gin.RouterGroup), 0) routerNoCheckRole = make([]func(*gin.RouterGroup), 0)
routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0) routerCheckRole = make([]func(v1 *gin.RouterGroup), 0)
) )
// initRouter 路由示例 // initRouter 路由示例
func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine { func initRouter(r *gin.Engine) *gin.Engine {
// 无需认证的路由 // 无需认证的路由
noCheckRoleRouter(r) noCheckRoleRouter(r)
// 需要认证的路由 // 需要认证的路由
checkRoleRouter(r, authMiddleware) checkRoleRouter(r)
return r return r
} }
...@@ -32,11 +32,11 @@ func noCheckRoleRouter(r *gin.Engine) { ...@@ -32,11 +32,11 @@ func noCheckRoleRouter(r *gin.Engine) {
} }
// checkRoleRouter 需要认证的路由示例 // checkRoleRouter 需要认证的路由示例
func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) { func checkRoleRouter(r *gin.Engine) {
// 可根据业务需求来设置接口版本 // 可根据业务需求来设置接口版本
v1 := r.Group("/mobile/v1") v1 := r.Group("/mobile/v1")
v1.Use(middleware.JWTAuthMiddleware())
for _, f := range routerCheckRole { for _, f := range routerCheckRole {
f(v1, authMiddleware) f(v1)
} }
} }
package middleware
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/pkg/response"
"go-admin/common/utils"
"strconv"
"strings"
)
// JWTAuthMiddleware 基于JWT的认证中间件
func JWTAuthMiddleware() func(c *gin.Context) {
return func(c *gin.Context) {
//ip := exnet.ClientPublicIP(c.Request)
//if ip == "" {
// ip = exnet.ClientIP(c.Request)
//}
//if ip != viper.GetString("white_ip.ip") {
// utils.ResponseErrorWithMsg(c, utils.CodeInvalidToken, "没有请求权限")
// c.Abort()
// return
//}
//客户端携带Token有三种方式 1.放在请求头 2.放在请求体 3.放在URI
authHeader := c.Request.Header.Get("Authorization")
if authHeader == "" {
response.OK(c, 401, "请求头缺少Auth Token")
c.Abort()
return
}
// 按空格分割
parts := strings.SplitN(authHeader, " ", 2)
if !(len(parts) == 2 && parts[0] == "Bearer") {
response.OK(c, 402, "请求头中auth格式有误")
c.Abort()
return
}
// parts[1]是获取到的tokenString,我们使用之前定义好的解析JWT的函数来解析它
mc, err := utils.ParseToken(parts[1])
if err != nil {
response.OK(c, 403, "invalid JWT token")
c.Abort()
return
}
c.Set("userId", mc.UserId)
fmt.Println("token:" + parts[1] + "======userid:" + strconv.FormatInt(mc.UserId, 10))
c.Next()
}
}
...@@ -4,7 +4,6 @@ import ( ...@@ -4,7 +4,6 @@ import (
"errors" "errors"
"github.com/dgrijalva/jwt-go" "github.com/dgrijalva/jwt-go"
"github.com/spf13/viper" "github.com/spf13/viper"
"time"
) )
type MemberInfo struct { type MemberInfo struct {
...@@ -34,8 +33,8 @@ func GenToken(userID int64) (string, error) { ...@@ -34,8 +33,8 @@ func GenToken(userID int64) (string, error) {
c := MyClaims{ c := MyClaims{
userID, // 自定义字段 userID, // 自定义字段
jwt.StandardClaims{ jwt.StandardClaims{
ExpiresAt: time.Now().Add(time.Hour * time.Duration(viper.GetInt("jwt.expire_hours"))).Unix(), // 过期时间 ExpiresAt: 30 * 24 * 3600 * 1000, // 过期时间
Issuer: viper.GetString("app.name"), // 签发人 Issuer: "nbya", // 签发人
}, },
} }
// 使用指定的签名方法创建签名对象 // 使用指定的签名方法创建签名对象
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment