完善clientToken

main
jhc 10 months ago
parent ed1125c6dd
commit b231112030

@ -20,7 +20,7 @@ type DciProvider struct {
func (d *DciProvider) GetUploadUrl(_ context.Context, req *dci.GetUploadUrlRequest) (res *dci.GetUploadUrlResponse, err error) { func (d *DciProvider) GetUploadUrl(_ context.Context, req *dci.GetUploadUrlRequest) (res *dci.GetUploadUrlResponse, err error) {
res = new(dci.GetUploadUrlResponse) res = new(dci.GetUploadUrlResponse)
if req.FileName == "" { if req.FileName == "" {
return res, errCommon.ReturnError(errors.New(msg.ErrrFileIsEmpty), msg.ErrrFileIsEmpty, "未获取到相关文件 :") return res, errCommon.ReturnError(errors.New(msg.ErrFileIsEmpty), msg.ErrFileIsEmpty, "未获取到相关文件 :")
} }
res, err = d.file.Upload(req) res, err = d.file.Upload(req)

@ -31,13 +31,11 @@ type IDci interface {
type Dci struct { type Dci struct {
} }
func createToken(appID, appKey, channelId, userID, nonce string, timestamp int64) (token string, err error) { func createToken(timestamp int64, keyword ...string) (token string, err error) {
var b bytes.Buffer var b bytes.Buffer
b.WriteString(appID) for i := 0; i < len(keyword); i++ {
b.WriteString(appKey) b.WriteString(keyword[i])
b.WriteString(channelId) }
b.WriteString(userID)
b.WriteString(nonce)
b.WriteString(fmt.Sprint(timestamp)) b.WriteString(fmt.Sprint(timestamp))
h := sha256.New() h := sha256.New()

@ -3,8 +3,11 @@ package logic
import ( import (
"chain-dci/pb/dci" "chain-dci/pb/dci"
"chain-dci/pkg/app" "chain-dci/pkg/app"
errCommon "chain-dci/pkg/err"
"chain-dci/pkg/msg"
bccrClient "github.com/antchain-openapi-sdk-go/bccr/client" bccrClient "github.com/antchain-openapi-sdk-go/bccr/client"
"github.com/jinzhu/copier" "github.com/jinzhu/copier"
"time"
) )
type IDciRegistration interface { type IDciRegistration interface {
@ -27,6 +30,12 @@ func (r *DciRegistration) CreateDciRegistration(req *dci.CreateDciRegistrationRe
createDciRegistrationRequest := new(bccrClient.CreateDciRegistrationRequest) createDciRegistrationRequest := new(bccrClient.CreateDciRegistrationRequest)
_ = copier.CopyWithOption(&createDciRegistrationRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&createDciRegistrationRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.DciContentId, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
createDciRegistrationRequest.SetClientToken(clientToken)
createDciPreregistrationResponse, err := app.ModuleClients.BccrClient.CreateDciRegistration(createDciRegistrationRequest) createDciPreregistrationResponse, err := app.ModuleClients.BccrClient.CreateDciRegistration(createDciRegistrationRequest)
if err != nil { if err != nil {
return nil, err return nil, err
@ -61,6 +70,12 @@ func (r *DciRegistration) GetDciPayUrl(req *dci.GetDciPayUrlRequest) (res *dci.G
getDciPayUrlRequest := new(bccrClient.GetDciPayurlRequest) getDciPayUrlRequest := new(bccrClient.GetDciPayurlRequest)
_ = copier.CopyWithOption(&getDciPayUrlRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&getDciPayUrlRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
getDciPayUrlRequest.SetClientToken(clientToken)
getDciPayUrlResponse, err := app.ModuleClients.BccrClient.GetDciPayurl(getDciPayUrlRequest) getDciPayUrlResponse, err := app.ModuleClients.BccrClient.GetDciPayurl(getDciPayUrlRequest)
if err != nil { if err != nil {
return nil, err return nil, err
@ -95,6 +110,12 @@ func (r *DciRegistration) GetDciRegistrationcert(req *dci.GetDciRegistrationcert
getDciRegistrationcertRequest := new(bccrClient.GetDciRegistrationcertRequest) getDciRegistrationcertRequest := new(bccrClient.GetDciRegistrationcertRequest)
_ = copier.CopyWithOption(&getDciRegistrationcertRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&getDciRegistrationcertRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
getDciRegistrationcertRequest.SetClientToken(clientToken)
getDciRegistrationcertResponse, err := app.ModuleClients.BccrClient.GetDciRegistrationcert(getDciRegistrationcertRequest) getDciRegistrationcertResponse, err := app.ModuleClients.BccrClient.GetDciRegistrationcert(getDciRegistrationcertRequest)
if err != nil { if err != nil {
return nil, err return nil, err
@ -112,6 +133,12 @@ func (r *DciRegistration) RetryDciRegistration(req *dci.RetryDciRegistrationRequ
retryDciRegistrationRequest := new(bccrClient.RetryDciRegistrationRequest) retryDciRegistrationRequest := new(bccrClient.RetryDciRegistrationRequest)
_ = copier.CopyWithOption(&retryDciRegistrationRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&retryDciRegistrationRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, req.DciContentId, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
retryDciRegistrationRequest.SetClientToken(clientToken)
retryDciRegistrationResponse, err := app.ModuleClients.BccrClient.RetryDciRegistration(retryDciRegistrationRequest) retryDciRegistrationResponse, err := app.ModuleClients.BccrClient.RetryDciRegistration(retryDciRegistrationRequest)
if err != nil { if err != nil {
return nil, err return nil, err
@ -129,6 +156,12 @@ func (r *DciRegistration) CloseDciRegistration(req *dci.CloseDciRegistrationRequ
closeDciRegistrationRequest := new(bccrClient.CloseDciRegistrationRequest) closeDciRegistrationRequest := new(bccrClient.CloseDciRegistrationRequest)
_ = copier.CopyWithOption(&closeDciRegistrationRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&closeDciRegistrationRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.DigitalRegisterId, req.Name, req.MobileNo, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
closeDciRegistrationRequest.SetClientToken(clientToken)
closeDciRegistrationResponse, err := app.ModuleClients.BccrClient.CloseDciRegistration(closeDciRegistrationRequest) closeDciRegistrationResponse, err := app.ModuleClients.BccrClient.CloseDciRegistration(closeDciRegistrationRequest)
if err != nil { if err != nil {
return nil, err return nil, err

@ -3,8 +3,11 @@ package logic
import ( import (
"chain-dci/pb/dci" "chain-dci/pb/dci"
"chain-dci/pkg/app" "chain-dci/pkg/app"
errCommon "chain-dci/pkg/err"
"chain-dci/pkg/msg"
bccrClient "github.com/antchain-openapi-sdk-go/bccr/client" bccrClient "github.com/antchain-openapi-sdk-go/bccr/client"
"github.com/jinzhu/copier" "github.com/jinzhu/copier"
"time"
) )
type IDciUser interface { type IDciUser interface {
@ -23,6 +26,12 @@ func (u *DciUser) AddDciUser(req *dci.AddDciUserRequest) (res *dci.AddDciUserRes
addDciUserRequest := new(bccrClient.AddDciUserRequest) addDciUserRequest := new(bccrClient.AddDciUserRequest)
_ = copier.CopyWithOption(&addDciUserRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&addDciUserRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.CertName, req.CertificateNumber, req.Phone, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
addDciUserRequest.SetClientToken(clientToken)
addDciUserResponse, err := app.ModuleClients.BccrClient.AddDciUser(addDciUserRequest) addDciUserResponse, err := app.ModuleClients.BccrClient.AddDciUser(addDciUserRequest)
if err != nil { if err != nil {
return nil, err return nil, err
@ -40,6 +49,12 @@ func (u *DciUser) UpdateDciUser(req *dci.UpdateDciUserRequest) (res *dci.UpdateD
updateDciUserRequest := new(bccrClient.UpdateDciUserRequest) updateDciUserRequest := new(bccrClient.UpdateDciUserRequest)
_ = copier.CopyWithOption(&updateDciUserRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&updateDciUserRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.DciUserId, req.CertFrontFileId, req.CertBackFileId, req.Phone, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
updateDciUserRequest.SetClientToken(clientToken)
updateDciUserResponse, err := app.ModuleClients.BccrClient.UpdateDciUser(updateDciUserRequest) updateDciUserResponse, err := app.ModuleClients.BccrClient.UpdateDciUser(updateDciUserRequest)
if err != nil { if err != nil {
return nil, err return nil, err

@ -3,8 +3,11 @@ package logic
import ( import (
"chain-dci/pb/dci" "chain-dci/pb/dci"
"chain-dci/pkg/app" "chain-dci/pkg/app"
errCommon "chain-dci/pkg/err"
"chain-dci/pkg/msg"
bccrClient "github.com/antchain-openapi-sdk-go/bccr/client" bccrClient "github.com/antchain-openapi-sdk-go/bccr/client"
"github.com/jinzhu/copier" "github.com/jinzhu/copier"
"time"
) )
type IDciWork interface { type IDciWork interface {
@ -22,6 +25,12 @@ func (w *DciWork) CreateDciPreregistration(req *dci.CreateDciPreregistrationRequ
createDciPreregistrationRequest := new(bccrClient.CreateDciPreregistrationRequest) createDciPreregistrationRequest := new(bccrClient.CreateDciPreregistrationRequest)
_ = copier.CopyWithOption(&createDciPreregistrationRequest, req, copier.Option{DeepCopy: true}) _ = copier.CopyWithOption(&createDciPreregistrationRequest, req, copier.Option{DeepCopy: true})
clientToken, err := createToken(time.Now().UnixMilli(), req.DciUserId, req.WorkName, req.AuthorName, req.WorkFileId, app.ModuleClients.SfNode.Generate().Base64())
if err != nil {
return nil, errCommon.ReturnError(err, msg.ErrCreateToken, "创建CreateToken 失败: ")
}
createDciPreregistrationRequest.SetClientToken(clientToken)
createDciPreregistrationResponse, err := app.ModuleClients.BccrClient.CreateDciPreregistration(createDciPreregistrationRequest) createDciPreregistrationResponse, err := app.ModuleClients.BccrClient.CreateDciPreregistration(createDciPreregistrationRequest)
if err != nil { if err != nil {
return nil, err return nil, err

@ -10,6 +10,7 @@ import (
bccrClient "github.com/antchain-openapi-sdk-go/bccr/client" bccrClient "github.com/antchain-openapi-sdk-go/bccr/client"
"github.com/jinzhu/copier" "github.com/jinzhu/copier"
"strings" "strings"
"time"
"unicode" "unicode"
) )
@ -65,6 +66,9 @@ func (f *File) Upload(req *dci.GetUploadUrlRequest) (res *dci.GetUploadUrlRespon
getUploadUrlRequest.SetFileName(fileName) getUploadUrlRequest.SetFileName(fileName)
} }
clientToken, err := createToken(time.Now().UnixMilli(), fileName, app.ModuleClients.SfNode.Generate().Base64())
getUploadUrlRequest.SetClientToken(clientToken)
getUploadUrlResponse := GetUploadUrl(getUploadUrlRequest) getUploadUrlResponse := GetUploadUrl(getUploadUrlRequest)
//res = serializer.UploadUrlResponseToRpc(getUploadUrlResponse) //res = serializer.UploadUrlResponseToRpc(getUploadUrlResponse)
res = new(dci.GetUploadUrlResponse) res = new(dci.GetUploadUrlResponse)

27
pkg/cache/redis.go vendored

@ -1,27 +1,24 @@
package cache package cache
import ( import (
dciConfig "chain-dci/config"
"github.com/dubbogo/gost/log/logger"
"github.com/go-redis/redis" "github.com/go-redis/redis"
"github.com/google/wire" "github.com/google/wire"
"strconv"
) )
var RedisProvider = wire.NewSet(NewRedis) var RedisProvider = wire.NewSet(NewRedis)
// TODO 添加连接池 // TODO 添加连接池
func NewRedis() *redis.Client { func NewRedis() *redis.Client {
redisDb, _ := strconv.Atoi(dciConfig.Data.Redis.DB) //redisDb, _ := strconv.Atoi(dciConfig.Data.Redis.DB)
RedisClient := redis.NewClient(&redis.Options{ //RedisClient := redis.NewClient(&redis.Options{
Addr: dciConfig.Data.Redis.Addr, // Addr: dciConfig.Data.Redis.Addr,
Password: dciConfig.Data.Redis.Password, // Password: dciConfig.Data.Redis.Password,
DB: redisDb, // DB: redisDb,
}) //})
_, err := RedisClient.Ping().Result() //_, err := RedisClient.Ping().Result()
if err != nil { //if err != nil {
logger.Errorf("connRedis err", err) // logger.Errorf("connRedis err", err)
panic(err) // panic(err)
} //}
return RedisClient return nil
} }

@ -1,18 +1,16 @@
package db package db
import ( import (
dciConfig "chain-dci/config"
"github.com/google/wire" "github.com/google/wire"
"gorm.io/gorm" "gorm.io/gorm"
"strings"
) )
var MeetingProvider = wire.NewSet(NewDci) var DciProvider = wire.NewSet(NewDci)
func NewDci() *gorm.DB { func NewDci() *gorm.DB {
connOaMeeting := strings.Join([]string{dciConfig.Data.ChainDci.User, ":", dciConfig.Data.ChainDci.Password, //connOaMeeting := strings.Join([]string{dciConfig.Data.ChainDci.User, ":", dciConfig.Data.ChainDci.Password,
"@tcp(", dciConfig.Data.ChainDci.Host, ":", dciConfig.Data.ChainDci.Port, ")/", // "@tcp(", dciConfig.Data.ChainDci.Host, ":", dciConfig.Data.ChainDci.Port, ")/",
dciConfig.Data.ChainDci.DbName, "?charset=utf8mb4&parseTime=true"}, "") // dciConfig.Data.ChainDci.DbName, "?charset=utf8mb4&parseTime=true"}, "")
DbOaMeeting := loadMysqlConn(connOaMeeting) //DbOaMeeting := loadMysqlConn(connOaMeeting)
return DbOaMeeting return nil
} }

@ -1,7 +1,5 @@
package common package common
import "chain-dci/pkg/db"
func Init() { func Init() {
db.DBMigration() //db.DBMigration()
} }

@ -1,5 +1,6 @@
package msg package msg
const ( const (
ErrrFileIsEmpty = "未获取到相关文件" ErrFileIsEmpty = "未获取到相关文件"
ErrCreateToken = "创建CreateToken失败"
) )

@ -26,6 +26,11 @@ func NewSf() *snowflake.Node {
} }
return node return node
} }
func GenID() int64 {
func GenIDInt64() int64 {
return app.ModuleClients.SfNode.Generate().Int64() return app.ModuleClients.SfNode.Generate().Int64()
} }
func GetIDBase64() string {
return app.ModuleClients.SfNode.Generate().Base64()
}

Loading…
Cancel
Save