Commit 1255af4a authored by haoyanbin's avatar haoyanbin

Login

parent f214784a
......@@ -6,11 +6,12 @@ import (
"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/response"
"go-admin/app/mobile/service"
"go-admin/app/mobile/service/dto"
"go-admin/app/operate/models"
"go-admin/common/actions"
"go-admin/common/utils"
"strconv"
)
type OrgPlayerUser struct {
......@@ -52,7 +53,7 @@ func (e OrgPlayerUser) Login(c *gin.Context) {
//自建token生成
reply := new(dto.LoginReply)
//token, _ := utils.GenToken(int64(data.Id))
token, _ := utils.GenToken(int64(data.Id))
//
//a,_ := jwt.New(&jwt.GinJWTMiddleware{
// Realm: "test zone",
......@@ -68,8 +69,8 @@ func (e OrgPlayerUser) Login(c *gin.Context) {
// TokenHeadName: "Bearer",
// TimeFunc: time.Now,
//})
//reply.Token = a.
//reply.PlayerUserId = strconv.Itoa(data.Id)
reply.Token = token
reply.PlayerUserId = strconv.Itoa(data.Id)
e.OK(reply, "查询成功")
}
......
......@@ -7,7 +7,6 @@ import (
"github.com/gin-gonic/gin"
log "github.com/go-admin-team/go-admin-core/logger"
"github.com/go-admin-team/go-admin-core/sdk"
common "go-admin/common/middleware"
)
// InitRouter 路由初始化,不要怀疑,这里用到了
......@@ -26,11 +25,6 @@ func InitRouter() {
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
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis"
)
......@@ -12,9 +10,9 @@ func init() {
}
// registerOrgLeagueRouter
func registerOrgLeagueRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
func registerOrgLeagueRouter(v1 *gin.RouterGroup) {
api := apis.OrgLeague{}
r := v1.Group("/org-league").Use(authMiddleware.MiddlewareFunc())
r := v1.Group("/org-league").Use()
{
r.GET("", api.GetPage)
r.GET("/:id", api.Get)
......
......@@ -2,10 +2,7 @@ package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis"
"go-admin/common/middleware"
)
func init() {
......@@ -13,9 +10,9 @@ func init() {
}
// registerOrgNewsRouter
func registerOrgNewsRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
func registerOrgNewsRouter(v1 *gin.RouterGroup) {
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("/:id", api.Get)
......
......@@ -2,10 +2,7 @@ package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/operate/apis"
"go-admin/common/middleware"
)
func init() {
......@@ -13,9 +10,9 @@ func init() {
}
// registerOrgPlayerRouter
func registerOrgPlayerRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
func registerOrgPlayerRouter(v1 *gin.RouterGroup) {
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("/:id", api.Get)
......
......@@ -2,10 +2,7 @@ package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis"
"go-admin/common/middleware"
)
func init() {
......@@ -13,9 +10,9 @@ func init() {
}
// registerOrgTeamPlayerRouter
func registerOrgPlayerRankRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
func registerOrgPlayerRankRouter(v1 *gin.RouterGroup) {
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)
}
......
......@@ -2,10 +2,7 @@ package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/app/mobile/apis"
"go-admin/common/middleware"
)
func init() {
......@@ -14,9 +11,9 @@ func init() {
}
// registerOrgPlayerUserRouter
func registerOrgPlayerUserRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware) {
func registerOrgPlayerUserRouter(v1 *gin.RouterGroup) {
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("/:id", api.Get)
......
......@@ -2,21 +2,21 @@ package router
import (
"github.com/gin-gonic/gin"
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
"go-admin/common/middleware"
)
var (
routerNoCheckRole = make([]func(*gin.RouterGroup), 0)
routerCheckRole = make([]func(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWTMiddleware), 0)
routerCheckRole = make([]func(v1 *gin.RouterGroup), 0)
)
// initRouter 路由示例
func initRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) *gin.Engine {
func initRouter(r *gin.Engine) *gin.Engine {
// 无需认证的路由
noCheckRoleRouter(r)
// 需要认证的路由
checkRoleRouter(r, authMiddleware)
checkRoleRouter(r)
return r
}
......@@ -32,11 +32,11 @@ func noCheckRoleRouter(r *gin.Engine) {
}
// checkRoleRouter 需要认证的路由示例
func checkRoleRouter(r *gin.Engine, authMiddleware *jwt.GinJWTMiddleware) {
func checkRoleRouter(r *gin.Engine) {
// 可根据业务需求来设置接口版本
v1 := r.Group("/mobile/v1")
v1.Use(middleware.JWTAuthMiddleware())
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 (
"errors"
"github.com/dgrijalva/jwt-go"
"github.com/spf13/viper"
"time"
)
type MemberInfo struct {
......@@ -34,8 +33,8 @@ func GenToken(userID int64) (string, error) {
c := MyClaims{
userID, // 自定义字段
jwt.StandardClaims{
ExpiresAt: time.Now().Add(time.Hour * time.Duration(viper.GetInt("jwt.expire_hours"))).Unix(), // 过期时间
Issuer: viper.GetString("app.name"), // 签发人
ExpiresAt: 30 * 24 * 3600 * 1000, // 过期时间
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