Skip to content

hyperscale-stack/grpcoauth

Repository files navigation

Hyperscale gRPC OAuth Last release Documentation

Go Report Card

Branch Status Coverage
master Build Status Coveralls

The Hyperscale grpcoauth library provides a simple gRPC credentials.PerRPCCredentials with OAuth

Example

package main

import (
    "github.com/hyperscale-stack/grpcoauth"
)

func main() {
    cert := ...

    authF := func(ctx context.Context, creds *OAuthCredentials) (context.Context, error) {
		// implements your business logic for authenticate
        // creds contains AccessToken or ClientID and ClientSecret

		return ctx, nil
	}

    opts := []grpc.ServerOption{
		grpc.Creds(credentials.NewServerTLSFromCert(&cert)),
		grpc.UnaryInterceptor(UnaryServerInterceptor(authF)),
	}

	gsrv := grpc.NewServer(opts...)


    // init gRPC Dial and init service
    greeter := ...

    _, err = greeter.SayHello(ctx, &greeterv1.SayHelloRequest{}, grpcoauth.PerRPCTokenCredentials("feadbb35-c2be-4529-b2a6-19109e07eaa3"))
}

License

Hyperscale grpcoauth is licensed under the MIT license.