Golang结构作为POST请求的有效负载

New to golang. I'm trying to make a POST request to an auth endpoint to get back a token for authing further requests. Currently the error I'm getting is missing "credentials". I've written the same logic in Python so I know what I am trying to do is what the system is expecting.

package main

import (
    "bufio"
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "net/http/cookiejar"
    "os"
)

type Auth struct {
    Method   string `json:"credentials"`
    Email    string `json:"email"`
    Password string `json:"password"`
    Mfa      string `json:"mfa_token"`
}

func main() {
    reader := bufio.NewReader(os.Stdin)

    fmt.Print("Enter Email: ")
    e, _ := reader.ReadString('
')
    fmt.Print("Enter Password: ")
    p, _ := reader.ReadString('
')
    fmt.Print("Enter 2FA Token: ")
    authy, _ := reader.ReadString('
')

    auth := Auth{"manual", e, p, authy}
    j, _ := json.Marshal(auth)
    jar, _ := cookiejar.New(nil)
    client := &http.Client{
        Jar: jar,
    }

    req, err := http.NewRequest("POST", "https://internaltool.com/v3/sessions", bytes.NewBuffer(j))
    if err != nil {
        log.Fatal(err)
    }
    req.Header.Add("Accept-Encoding", "gzip, deflate, br")
    res, err := client.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    defer res.Body.Close()

    body, _ := ioutil.ReadAll(res.Body)
    s := string(body)
    if res.StatusCode == 400 {
        fmt.Println("Bad Credentials")
        fmt.Println(s)
        return
    }
}

The question is - am I properly marshalling the AUTH struct into JSON and adding it appropriately to the POST request? As the API is not even seeing the credentials key in the JSON I think I must be doing something wrong. Anything helps.