diff --git a/openstack/identity/v2/tokens/results.go b/openstack/identity/v2/tokens/results.go
index 3903e39..67c577b 100644
--- a/openstack/identity/v2/tokens/results.go
+++ b/openstack/identity/v2/tokens/results.go
@@ -23,10 +23,17 @@
 
 	// Tenant provides information about the tenant to which this token grants access.
 	Tenant tenants.Tenant
+}
 
-	// the owner user of token
-	UserName string
-	UserID   string
+// Authorization need user info which can get from token authentication's response
+type Role struct {
+	Name string `mapstructure:"name"`
+}
+type User struct {
+	ID       string `mapstructure:"id"`
+	Name     string `mapstructure:"name"`
+	UserName string `mapstructure:"username"`
+	Roles    []Role `mapstructure:"roles"`
 }
 
 // Endpoint represents a single API endpoint offered by a service.
@@ -78,9 +85,10 @@
 	gophercloud.Result
 }
 
-// GetResult is the deferred response from a Get call.
+// GetResult is the deferred response from a Get call, which is the same with a Created token.
+// Use ExtractUser() to interpret it as a User.
 type GetResult struct {
-	gophercloud.Result
+	CreateResult
 }
 
 // ExtractToken returns the just-created Token from a CreateResult.
@@ -141,22 +149,15 @@
 	return CreateResult{gophercloud.Result{Err: err}}
 }
 
-// ExtractToken returns the Token from a GetResult.
-func (result GetResult) ExtractToken() (*Token, error) {
+// ExtractUser returns the User from a GetResult.
+func (result GetResult) ExtractUser() (*User, error) {
 	if result.Err != nil {
 		return nil, result.Err
 	}
 
 	var response struct {
 		Access struct {
-			Token struct {
-				Expires string `mapstructure:"expires"`
-				ID      string `mapstructure:"id"`
-			} `mapstructure:"token"`
-			User struct {
-				ID   string `mapstructure:"id"`
-				Name string `mapstructure:"name"`
-			} `mapstructure:"user"`
+			User User `mapstructure:"user"`
 		} `mapstructure:"access"`
 	}
 
@@ -165,15 +166,5 @@
 		return nil, err
 	}
 
-	expiresTs, err := time.Parse(gophercloud.RFC3339Milli, response.Access.Token.Expires)
-	if err != nil {
-		return nil, err
-	}
-
-	return &Token{
-		ID:        response.Access.Token.ID,
-		ExpiresAt: expiresTs,
-		UserID:    response.Access.User.ID,
-		UserName:  response.Access.User.Name,
-	}, nil
+	return &response.Access.User, nil
 }
