lijian 4 éve
szülő
commit
ba840ff0a6
2 módosított fájl, 22 hozzáadás és 7 törlés
  1. 2 0
      services/httpaccess/actions.go
  2. 20 7
      services/registry/registry.go

+ 2 - 0
services/httpaccess/actions.go

@@ -4,6 +4,7 @@ import (
 	"context"
 	"encoding/hex"
 	"errors"
+	"fmt"
 	"math/rand"
 	"net/http"
 	"sparrow/pkg/models"
@@ -99,6 +100,7 @@ func AuthDevice(args DeviceAuthArgs, r render.Render) {
 	}
 
 	if device.DeviceSecret != args.DeviceSecret {
+		fmt.Printf("%s, %s\r\n", device.DeviceSecret, args.DeviceSecret)
 		// device secret is wrong.
 		r.JSON(http.StatusOK, renderError(ErrWrongSecret, errors.New("wrong device secret.")))
 		return

+ 20 - 7
services/registry/registry.go

@@ -69,7 +69,7 @@ func setDevice(target *models.Device, src *models.Device) {
 	target.ID = src.ID
 	target.ProductID = src.ProductID
 	target.DeviceIdentifier = src.DeviceIdentifier
-	target.DeviceSecret = src.DeviceIdentifier
+	target.DeviceSecret = src.DeviceSecret
 	target.DeviceKey = src.DeviceKey
 	target.DeviceName = src.DeviceName
 	target.DeviceDescription = src.DeviceDescription
@@ -381,13 +381,23 @@ func (r *Registry) FindDeviceById(args uint64, reply *models.Device) error {
 	if err != nil {
 		return err
 	}
-	d := &models.Device{}
-	d.ID = uint(args)
-	err = db.Where(d).First(reply).Error
-	if err != nil {
-		return err
+	cache := getCache()
+	key := fmt.Sprintf("Device:%v", args)
+	if v, ok := cache.Get(key);ok {
+		device := v.(*models.Device)
+		setDevice(reply, device)
+		fmt.Printf("%v\r\n", device)
+	} else {
+		d := &models.Device{}
+		d.ID = uint(args)
+		err = db.Where(d).First(reply).Error
+		if err != nil {
+			return err
+		}
+		cache.Set(key, reply)
 	}
 
+
 	return nil
 }
 
@@ -399,7 +409,7 @@ func (r *Registry) FindDeviceByRecordId(args *rpcs.ArgsDeviceAuth, reply *models
 	}
 	cache := getCache()
 	key := fmt.Sprintf("Device:%v", args.DeviceID)
-	if v, ok := cache.Get(key); ok {
+	if v, ok := cache.Get(key);ok {
 		device := v.(*models.Device)
 		setDevice(reply, device)
 	} else {
@@ -414,9 +424,12 @@ func (r *Registry) FindDeviceByRecordId(args *rpcs.ArgsDeviceAuth, reply *models
 		cache.Set(key, &storage)
 	}
 
+
 	return nil
 }
 
+
+
 // ValidateDevice will validate a device key and return the model if success.
 func (r *Registry) ValidateDevice(key string, device *models.Device) error {
 	id, err := r.keygen.DecodeIDFromRandomKey(key)