Extract the new token from headers.
diff --git a/openstack/identity/v3/tokens/requests.go b/openstack/identity/v3/tokens/requests.go
index 121de43..b8f0d76 100644
--- a/openstack/identity/v3/tokens/requests.go
+++ b/openstack/identity/v3/tokens/requests.go
@@ -228,11 +228,18 @@
}
}
- var resp TokenCreateResult
- perigee.Post(getTokenURL(c), perigee.Options{
+ var result TokenCreateResult
+ response, err := perigee.Request("POST", getTokenURL(c), perigee.Options{
ReqBody: &req,
- Results: &resp,
+ Results: &result.response,
OkCodes: []int{201},
})
- return &resp, nil
+ if err != nil {
+ return nil, err
+ }
+
+ // Extract the token ID from the response, if present.
+ result.tokenID = response.HttpResponse.Header.Get("X-Subject-Token")
+
+ return &result, nil
}