Files
chain33-dtalk/service/auth/api/client.go
2022-03-17 15:59:24 +08:00

43 lines
873 B
Go

package auth
import (
"context"
"fmt"
"gitlab.33.cn/chat/dtalk/pkg/naming"
"gitlab.33.cn/chat/dtalk/pkg/net/grpc"
"google.golang.org/grpc/resolver"
"time"
)
type Client struct {
client AuthClient
}
func New(etcdAddr, schema, srvName string, dial time.Duration) *Client {
rb := naming.NewResolver(etcdAddr, schema)
resolver.Register(rb)
addr := fmt.Sprintf("%s:///%s", schema, srvName) // "schema://[authority]/service"
fmt.Println("group rpc client call addr:", addr)
conn, err := grpc.NewGRPCConn(addr, dial)
if err != nil {
panic(err)
}
return &Client{
client: NewAuthClient(conn),
}
}
func (c *Client) DoAuth(ctx context.Context, appId string, token string) (string, error) {
request := &AuthRequest{
Appid: appId,
Token: token,
}
reply, err := c.client.DoAuth(ctx, request)
if err != nil {
return "", err
}
return reply.Uid, nil
}