123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package auth
- import (
- "os"
- "github.com/gravitl/netmaker/netclient/ncutils"
- // "os"
- )
- // SetJWT func will used to create the JWT while signing in and signing out
- //func SetJWT(client nodepb.NodeServiceClient, network string) (context.Context, error) {
- // home := ncutils.GetNetclientPathSpecific()
- // tokentext, err := os.ReadFile(home + "nettoken-" + network)
- // if err != nil {
- // err = AutoLogin(client, network)
- // if err != nil {
- // return nil, status.Errorf(codes.Unauthenticated, fmt.Sprintf("Something went wrong with Auto Login: %v", err))
- // }
- // tokentext, err = ncutils.GetFileWithRetry(home+"nettoken-"+network, 1)
- // if err != nil {
- // return nil, status.Errorf(codes.Unauthenticated, fmt.Sprintf("Something went wrong: %v", err))
- // }
- // }
- // token := string(tokentext)
- //
- // // Anything linked to this variable will transmit request headers.
- // md := metadata.New(map[string]string{"authorization": token})
- // ctx := context.Background()
- // ctx = metadata.NewOutgoingContext(ctx, md)
- // return ctx, nil
- //}
- // AutoLogin - auto logins whenever client needs to request from server
- //func AutoLogin(client nodepb.NodeServiceClient, network string) error {
- // home := ncutils.GetNetclientPathSpecific()
- // cfg, err := config.ReadConfig(network)
- // if err != nil {
- // return err
- // }
- // pass, err := RetrieveSecret(network)
- // if err != nil {
- // return err
- // }
- // node := models.Node{
- // Password: pass,
- // MacAddress: cfg.Node.MacAddress,
- // ID: cfg.Node.ID,
- // Network: network,
- // }
- // data, err := json.Marshal(&node)
- // if err != nil {
- // return nil
- // }
- //
- // login := &nodepb.Object{
- // Data: string(data),
- // Type: nodepb.NODE_TYPE,
- // }
- // // RPC call
- // res, err := client.Login(context.TODO(), login)
- // if err != nil {
- // return err
- // }
- // tokenstring := []byte(res.Data)
- // err = os.WriteFile(home+"nettoken-"+network, tokenstring, 0600)
- // if err != nil {
- // return err
- // }
- // return err
- //}
- // StoreSecret - stores auth secret locally
- func StoreSecret(key string, network string) error {
- d1 := []byte(key)
- return os.WriteFile(ncutils.GetNetclientPathSpecific()+"secret-"+network, d1, 0600)
- }
- // RetrieveSecret - fetches secret locally
- func RetrieveSecret(network string) (string, error) {
- dat, err := ncutils.GetFileWithRetry(ncutils.GetNetclientPathSpecific()+"secret-"+network, 3)
- return string(dat), err
- }
- // StoreTrafficKey - stores traffic key
- func StoreTrafficKey(key *[32]byte, network string) error {
- var data, err = ncutils.ConvertKeyToBytes(key)
- if err != nil {
- return err
- }
- return os.WriteFile(ncutils.GetNetclientPathSpecific()+"traffic-"+network, data, 0600)
- }
- // RetrieveTrafficKey - reads traffic file locally
- func RetrieveTrafficKey(network string) (*[32]byte, error) {
- data, err := ncutils.GetFileWithRetry(ncutils.GetNetclientPathSpecific()+"traffic-"+network, 2)
- if err != nil {
- return nil, err
- }
- return ncutils.ConvertBytesToKey(data)
- }
- // Configuraion - struct for mac and pass
- type Configuration struct {
- MacAddress string
- Password string
- }
|