Аутентификация при помощи токена

    Примечание

    Материал статьи дополняется.

    Ниже приведены примеры кода аутентификации при помощи токена в разных YDB SDK.

    package main
    
    import (
      "context"
      "os"
        
      "github.com/ydb-platform/ydb-go-sdk/v3"
    )
    
    func main() {
      ctx, cancel := context.WithCancel(context.Background())
      defer cancel()
      db, err := ydb.Open(ctx,
        os.Getenv("YDB_CONNECTION_STRING"),
        ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
      )
      if err != nil {
        panic(err)
      }
      defer db.Close(ctx)
      ...
    }
    
    Если используется коннектор для создания подключения к YDB
    package main
    
    import (
      "context"
      "database/sql"
      "os"
      
      "github.com/ydb-platform/ydb-go-sdk/v3"
    )
    
    func main() {
      ctx, cancel := context.WithCancel(context.Background())
      defer cancel()
      nativeDriver, err := ydb.Open(ctx,
        os.Getenv("YDB_CONNECTION_STRING"),
        ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
      )
      if err != nil {
        panic(err)
      }
      defer nativeDriver.Close(ctx) 
      connector, err := ydb.Connector(nativeDriver)
      if err != nil {
        panic(err)
      }
      db := sql.OpenDB(connector)
      defer db.Close()
      ...
    }
    
    Если используется строка подключения
    package main
    
    import (
      "context"
      "database/sql"
      "os"
      
      _ "github.com/ydb-platform/ydb-go-sdk/v3"
    )
    
    func main() {
      db, err := sql.Open("ydb", "grpcs://localohost:2135/local?token="+os.Getenv("YDB_TOKEN"))
      if err != nil {
        panic(err)
      }
      defer db.Close()
      ...
    }
    
    public void work(String connectionString, String accessToken) {
        AuthProvider authProvider = new TokenAuthProvider(accessToken);
    
        GrpcTransport transport = GrpcTransport.forConnectionString(connectionString)
                .withAuthProvider(authProvider)
                .build());
        
        TableClient tableClient = TableClient.newClient(transport).build();
    
        doWork(tableClient);
    
        tableClient.close();
        transport.close();
    }