1
0
mirror of https://github.com/go-acme/lego.git synced 2024-12-23 09:15:11 +02:00
lego/providers/dns/corenetworks/internal/identity.go
2024-10-25 22:52:39 +02:00

50 lines
1008 B
Go

package internal
import (
"context"
"net/http"
)
const authorizationHeader = "Authorization"
type token string
const tokenKey token = "token"
// CreateAuthenticationToken gets an authentication token.
// https://beta.api.core-networks.de/doc/#functon_auth_token
func (c Client) CreateAuthenticationToken(ctx context.Context) (*Token, error) {
endpoint := c.baseURL.JoinPath("auth", "token")
req, err := newJSONRequest(ctx, http.MethodPost, endpoint, Auth{Login: c.login, Password: c.password})
if err != nil {
return nil, err
}
var token Token
err = c.do(req, &token)
if err != nil {
return nil, err
}
return &token, nil
}
func (c Client) CreateAuthenticatedContext(ctx context.Context) (context.Context, error) {
tok, err := c.CreateAuthenticationToken(ctx)
if err != nil {
return nil, err
}
return context.WithValue(ctx, tokenKey, tok.Token), nil
}
func getToken(ctx context.Context) string {
tok, ok := ctx.Value(tokenKey).(string)
if !ok {
return ""
}
return tok
}