Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = ["server.go"],
importpath = "go-common/app/service/main/identify/server/grpc",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/identify/api/grpc:go_default_library",
"//app/service/main/identify/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/metadata:go_default_library",
"//library/net/rpc/warden:go_default_library",
"@org_golang_google_grpc//:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,90 @@
package grpc
import (
"context"
"fmt"
"go-common/app/service/main/identify/api/grpc"
"go-common/app/service/main/identify/service"
"go-common/library/ecode"
"go-common/library/log"
"go-common/library/net/metadata"
"go-common/library/net/rpc/warden"
"google.golang.org/grpc"
)
// New Identify warden rpc server
func New(cfg *warden.ServerConfig, s *service.Service) *warden.Server {
w := warden.NewServer(cfg)
w.Use(func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
if resp, err = handler(ctx, req); err != nil {
log.Infov(ctx,
log.KV("path", info.FullMethod),
log.KV("caller", metadata.String(ctx, metadata.Caller)),
log.KV("args", fmt.Sprintf("%v", req)),
log.KV("args", fmt.Sprintf("%+v", err)))
}
return
})
v1.RegisterIdentifyServer(w.Server(), &server{s})
ws, err := w.Start()
if err != nil {
panic(err)
}
return ws
}
type server struct {
svr *service.Service
}
var _ v1.IdentifyServer = &server{}
var (
emptyCookieReply = &v1.GetCookieInfoReply{
IsLogin: false,
}
emptyTokenReply = &v1.GetTokenInfoReply{
IsLogin: false,
}
)
// CookieInfo verify user info by cookie.
func (s *server) GetCookieInfo(ctx context.Context, req *v1.GetCookieInfoReq) (*v1.GetCookieInfoReply, error) {
res, err := s.svr.GetCookieInfo(ctx, req.GetCookie())
if err != nil {
if err == ecode.NoLogin {
return emptyCookieReply, nil
}
return nil, err
}
return &v1.GetCookieInfoReply{
IsLogin: true,
Mid: res.Mid,
Expires: res.Expires,
Csrf: res.Csrf,
}, nil
}
// TokenInfo verify user info by token.
func (s *server) GetTokenInfo(ctx context.Context, req *v1.GetTokenInfoReq) (*v1.GetTokenInfoReply, error) {
token := &v1.GetTokenInfoReq{
Buvid: req.Buvid,
Token: req.Token,
}
res, err := s.svr.GetTokenInfo(ctx, token)
if err != nil {
if err == ecode.NoLogin {
return emptyTokenReply, nil
}
return nil, err
}
return &v1.GetTokenInfoReply{
IsLogin: true,
Mid: res.Mid,
Expires: res.Expires,
Csrf: res.Csrf,
}, nil
}

View File

@@ -0,0 +1,40 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"http.go",
"identify.go",
],
importpath = "go-common/app/service/main/identify/server/http",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//app/service/main/identify/api/grpc:go_default_library",
"//app/service/main/identify/conf:go_default_library",
"//app/service/main/identify/service:go_default_library",
"//library/ecode:go_default_library",
"//library/log:go_default_library",
"//library/net/http/blademaster:go_default_library",
"//library/net/http/blademaster/middleware/verify:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,49 @@
package http
import (
"go-common/app/service/main/identify/conf"
"go-common/app/service/main/identify/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
srv *service.Service
vfy *verify.Verify
)
// Init init
func Init(c *conf.Config, s *service.Service) {
srv = s
vfy = verify.New(c.VerifyConfig)
// engine
engIn := bm.DefaultServer(c.BM)
innerRouter(engIn)
// init inner server
if err := engIn.Start(); err != nil {
log.Error("engIn.Start error(%v)", err)
panic(err)
}
}
func innerRouter(e *bm.Engine) {
e.Ping(ping)
e.Register(register)
group := e.Group("/x/internal/identify", vfy.Verify)
{
group.GET("cookie", accessCookie)
group.GET("token", accessToken)
group.GET("cache/del", delCache)
}
}
// ping check server ok.
func ping(c *bm.Context) {
}
// register support discovery.
func register(c *bm.Context) {
c.JSON(map[string]struct{}{}, nil)
}

View File

@@ -0,0 +1,54 @@
package http
import (
"go-common/app/service/main/identify/api/grpc"
"go-common/library/ecode"
bm "go-common/library/net/http/blademaster"
)
// const (
// _actionChangePWD = "changePwd"
// _actionLoginOut = "loginOut"
// )
func accessCookie(c *bm.Context) {
cookie := c.Request.Header.Get("Cookie")
if cookie == "" {
c.JSON(nil, ecode.NoLogin)
return
}
res, err := srv.GetCookieInfo(c, cookie)
if err == nil {
c.Set("mid", res.Mid)
}
c.JSON(res, err)
}
func accessToken(c *bm.Context) {
token := new(v1.GetTokenInfoReq)
if err := c.Bind(token); err != nil {
c.JSON(nil, ecode.NoLogin)
return
}
res, err := srv.GetTokenInfo(c, token)
if err == nil {
c.Set("mid", res.Mid)
}
c.JSON(res, err)
}
func delCache(c *bm.Context) {
// query := c.Request.Form
// action := query.Get("modifiedAttr")
// if action != _actionChangePWD && action != _actionLoginOut {
// return
// }
// key := query.Get("access_token")
// if key == "" {
// key = query.Get("session")
// }
// if key == "" {
// return
// }
c.JSON(nil, nil)
}