OpenStack/Rackspace reauth functionality
diff --git a/openstack/client.go b/openstack/client.go
index 63e07b8..876df74 100644
--- a/openstack/client.go
+++ b/openstack/client.go
@@ -58,6 +58,7 @@
 	if err != nil {
 		return nil, err
 	}
+
 	return client, nil
 }
 
@@ -107,6 +108,10 @@
 		return err
 	}
 
+	if options.AllowReauth {
+		client.ReauthFunc = AuthenticateV2
+	}
+	client.AuthOptions = options
 	client.TokenID = token.ID
 	client.EndpointLocator = func(opts gophercloud.EndpointOpts) (string, error) {
 		return V2EndpointURL(catalog, opts)
@@ -133,6 +138,10 @@
 	}
 	client.TokenID = token.ID
 
+	if options.AllowReauth {
+		client.ReauthFunc = AuthenticateV3
+	}
+	client.AuthOptions = options
 	client.EndpointLocator = func(opts gophercloud.EndpointOpts) (string, error) {
 		return V3EndpointURL(v3Client, opts)
 	}