Compare commits

...

12 Commits
v0.0.2 ... main

Author SHA1 Message Date
王性驊 97f0d9bbb3 merge: merge refactor into main 2025-03-12 19:07:57 +08:00
王性驊 8a746d9b40 fix: make file correcrt repo 2025-03-12 18:51:02 +08:00
王性驊 74d095bcbc fix: docker file 2025-03-12 15:30:43 +08:00
王性驊 23d0ce66e9 feat: new proto 2025-03-05 15:10:12 +08:00
王性驊 d7190ebe79 chore: golint 2025-02-28 16:58:37 +08:00
王性驊 dbe6b16dce chore: golint 2025-02-28 15:28:31 +08:00
王性驊 dbdc777ed4 feat:add tree 2025-02-28 09:39:42 +08:00
王性驊 eb85982ef1 feat:permission base usecase 2025-02-26 23:29:00 +08:00
王性驊 cccad97512 feat: add repository permission role role_permission user_role table 2025-02-26 16:45:27 +08:00
王性驊 547b3b06dd feat: add permission server 2025-02-24 09:04:06 +08:00
王性驊 e8c5616206 feat: add token func 2025-02-13 19:06:51 +08:00
王性驊 0e7f0a2b68 feat: add token repository 2025-02-12 09:51:46 +08:00
8 changed files with 87 additions and 2 deletions

View File

@ -8,6 +8,7 @@ LDFLAGS := -s -w
VERSION="v1.0.1"
DOCKER_REPO="reg.wang/app-cloudep-permission-service"
.PHONY: test
test: # 進行測試
go test -v --cover ./...

View File

@ -2,7 +2,7 @@
# BUILDER #
###########
FROM golang:1.24.0 AS builder
FROM golang:1.24.0 as builder
ARG VERSION
ARG BUILT

View File

@ -121,6 +121,15 @@ message Tokens{
repeated TokenResp token = 1;
}
message GetSystemClaimReq{
string access_token=1;
bool is_expired=2;
}
message GetSystemClaimResp {
map<string,string> data = 1;
}
// Token
// Biz GW
// access_token -> token , refresh_token -> one_time_token
@ -141,6 +150,8 @@ service TokenService {
rpc GetUserTokensByDeviceID(DoTokenByDeviceIDReq) returns(Tokens);
// GetUserTokensByUID UID Tokens
rpc GetUserTokensByUID(QueryTokenByUIDReq) returns(Tokens);
// Claim
rpc GetSystemClaimByAccessToken(GetSystemClaimReq) returns(GetSystemClaimResp);
}

View File

@ -0,0 +1,36 @@
package tokenservicelogic
import (
"context"
"code.30cm.net/digimon/app-cloudep-permission-server/gen_result/pb/permission"
"code.30cm.net/digimon/app-cloudep-permission-server/internal/svc"
"github.com/zeromicro/go-zero/core/logx"
)
type GetSystemClaimByAccessTokenLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
}
func NewGetSystemClaimByAccessTokenLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetSystemClaimByAccessTokenLogic {
return &GetSystemClaimByAccessTokenLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
// GetSystemClaimByAccessToken 取得 Claim
func (l *GetSystemClaimByAccessTokenLogic) GetSystemClaimByAccessToken(in *permission.GetSystemClaimReq) (*permission.GetSystemClaimResp, error) {
claim, err := l.svcCtx.TokenUseCase.ParseSystemClaimsByAccessToken(in.GetAccessToken(), l.svcCtx.Config.Token.Secret, in.GetIsExpired())
if err != nil {
return nil, err
}
return &permission.GetSystemClaimResp{
Data: claim,
}, nil
}

View File

@ -0,0 +1,22 @@
// Code generated by goctl. DO NOT EDIT.
// goctl 1.8.1
// Source: permission.proto
package server
import (
"code.30cm.net/digimon/app-cloudep-permission-server/gen_result/pb/permission"
"code.30cm.net/digimon/app-cloudep-permission-server/internal/logic/permissionservice"
"code.30cm.net/digimon/app-cloudep-permission-server/internal/svc"
)
type PermissionServiceServer struct {
svcCtx *svc.ServiceContext
permission.UnimplementedPermissionServiceServer
}
func NewPermissionServiceServer(svcCtx *svc.ServiceContext) *PermissionServiceServer {
return &PermissionServiceServer{
svcCtx: svcCtx,
}
}

View File

@ -1,5 +1,5 @@
// Code generated by goctl. DO NOT EDIT.
// goctl 1.7.3
// goctl 1.8.1
// Source: permission.proto
package server
@ -70,3 +70,9 @@ func (s *TokenServiceServer) GetUserTokensByUID(ctx context.Context, in *permiss
l := tokenservicelogic.NewGetUserTokensByUIDLogic(ctx, s.svcCtx)
return l.GetUserTokensByUID(in)
}
// 取得 Claim
func (s *TokenServiceServer) GetSystemClaimByAccessToken(ctx context.Context, in *permission.GetSystemClaimReq) (*permission.GetSystemClaimResp, error) {
l := tokenservicelogic.NewGetSystemClaimByAccessTokenLogic(ctx, s.svcCtx)
return l.GetSystemClaimByAccessToken(in)
}

View File

@ -15,6 +15,10 @@ func (use *additional) GetAll() map[string]string {
}
func (use *additional) Set(key token.Additional, val string) {
if use.additional == nil {
use.additional = make(map[string]string)
}
use.additional[key.String()] = val
}

View File

@ -452,6 +452,11 @@ func (use *TokenUseCase) newToken(ctx context.Context, req *usecase.GenerateToke
}
// 故意 data 裡面不會有那些已經有的欄位資訊
data := NewAdditional(req.Data)
initData := make(map[string]string, 0)
for k, v := range req.Data {
initData[k] = v
}
data.Set(dt.ID, token.ID)
data.Set(dt.Role, req.Role)
data.Set(dt.Scope, req.Scope)