Skip to content

Commit

Permalink
#70 client secret must be not random but fixed(presumably by platform)
Browse files Browse the repository at this point in the history
  • Loading branch information
drypa committed Oct 29, 2023
1 parent 433dbc8 commit 1690090
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 15 deletions.
3 changes: 2 additions & 1 deletion backend/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ var mongoUser = os.Getenv("MONGO_LOGIN")
var mongoSecret = os.Getenv("MONGO_SECRET")
var openUrl = os.Getenv("OPEN_URL")
var templatePath = os.Getenv("TEMPLATES_PATH")
var clientSecret = os.Getenv("CLIENT_SECRET")

func main() {
log.SetOutput(os.Stdout)
Expand Down Expand Up @@ -82,7 +83,7 @@ func main() {
if err != nil {
log.Fatalf("failed to load TLS keys: %v", err)
}
var accountProcessor internal.AccountProcessor = users.NewProcessor(&userRepository, generator, nalogruClient, deviceService)
var accountProcessor internal.AccountProcessor = users.NewProcessor(&userRepository, generator, nalogruClient, deviceService, clientSecret)
r := render.New(templatePath)

var receiptProcessor internal.ReceiptProcessor = receipts.NewProcessor(&receiptRepository, r)
Expand Down
27 changes: 13 additions & 14 deletions backend/users/processor.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"encoding/base64"
api "github.com/drypa/ReceiptCollector/api/inside"
"google.golang.org/grpc"
"log"
"receipt_collector/device"
"receipt_collector/nalogru"
nalogDevice "receipt_collector/nalogru/device"
Expand All @@ -17,13 +16,19 @@ import (
type Processor struct {
repository *Repository
linkGenerator LinkGenerator
d *device.Service
deviceService *device.Service
nalogClient *nalogru.Client
clientSecret string
}

// NewProcessor constructs Processor.
func NewProcessor(repository *Repository, linkGenerator LinkGenerator, nalogClient *nalogru.Client, d *device.Service) *Processor {
return &Processor{repository: repository, linkGenerator: linkGenerator, nalogClient: nalogClient, d: d}
func NewProcessor(repository *Repository, linkGenerator LinkGenerator, nalogClient *nalogru.Client, d *device.Service, secret string) *Processor {
return &Processor{
repository: repository,
linkGenerator: linkGenerator,
nalogClient: nalogClient,
deviceService: d,
clientSecret: secret}
}

// GetLoginLink returns login link for user in request.
Expand Down Expand Up @@ -93,30 +98,24 @@ func (p Processor) RegisterUser(ctx context.Context, in *api.UserRegistrationReq
}
}
userId := user.Id.Hex()
d, err := p.d.GetByUserId(ctx, userId)
d, err := p.deviceService.GetByUserId(ctx, userId)
if err != nil {
return nil, err
}
if d == nil {
secret, err := generateRandomSecret()
if err != nil {
log.Printf("error while generating random string: %v", err)
return nil, err
}

d := &nalogDevice.Device{
ClientSecret: *secret,
ClientSecret: p.clientSecret,
SessionId: "",
RefreshToken: "",
Update: nil,
UserId: userId,
Phone: in.PhoneNumber,
}
d.Update = func(sessionId string, refreshToken string) error {
return p.d.Update(ctx, d, sessionId, refreshToken)
return p.deviceService.Update(ctx, d, sessionId, refreshToken)
}

err = p.d.Add(ctx, d)
err = p.deviceService.Add(ctx, d)
if err != nil {
return nil, err
}
Expand Down

0 comments on commit 1690090

Please sign in to comment.