From 3e006c39b0a4411e91e80de261d0e7b5353d44c0 Mon Sep 17 00:00:00 2001 From: Kevin Lyda Date: Fri, 10 Aug 2018 17:21:02 +0000 Subject: Add Microsoft auth provider Microsoft uses JSON Web Tokens (JWT) as OAuth tokens. These can run to many thousands of characters which are too long for TTYs. Work around this by base64-encoding the token and chunk it into smaller pieces. Closes #70 --- cmd/cashier/main.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'cmd') diff --git a/cmd/cashier/main.go b/cmd/cashier/main.go index f448a25..1ee9455 100644 --- a/cmd/cashier/main.go +++ b/cmd/cashier/main.go @@ -1,6 +1,9 @@ package main import ( + "bufio" + "bytes" + "encoding/base64" "fmt" "log" "net" @@ -46,8 +49,16 @@ func main() { } fmt.Print("Enter token: ") - var token string - fmt.Scanln(&token) + scanner := bufio.NewScanner(os.Stdin) + var buffer bytes.Buffer + for scanner.Scan(); scanner.Text() != "."; scanner.Scan() { + buffer.WriteString(scanner.Text()) + } + tokenBytes, err := base64.StdEncoding.DecodeString(buffer.String()) + if err != nil { + log.Fatalln(err) + } + token := string(tokenBytes) cert, err := client.Sign(pub, token, c) if err != nil { -- cgit v1.2.3