Devuelva más información al cliente utilizando OAuth Bearer Tokens Generation y Owin en WebApi

He creado una aplicación WebApi y una aplicación Cordova. Estoy usando solicitudes HTTP para comunicarme entre la aplicación Cordova y el WebAPI. En WebAPI, he implementado OAuth Bearer Token Generation.

public void ConfigureOAuth(IAppBuilder app)
    {
        var oAuthServerOptions = new OAuthAuthorizationServerOptions
        {
            AllowInsecureHttp = true,
            TokenEndpointPath = new PathString("/token"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
            Provider = new SimpleAuthorizationServerProvider(new UserService(new Repository<User>(new RabbitApiObjectContext()), new EncryptionService()))
        };

        // Token Generation
        app.UseOAuthAuthorizationServer(oAuthServerOptions);
        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

    }

y esto está dentro delSimpleAuthorizationServerProvider implementación

 public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
    {
       context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

        // A little hack. context.UserName contains the email
        var user = await _userService.GetUserByEmailAndPassword(context.UserName, context.Password);

        if (user == null)
        {
            context.SetError("invalid_grant", "Wrong email or password.");
            return;
        }

        var identity = new ClaimsIdentity(context.Options.AuthenticationType);
        identity.AddClaim(new Claim("sub", context.UserName));
        identity.AddClaim(new Claim("role", "user"));

        context.Validated(identity);
    }

después de una solicitud de inicio de sesión exitosa a la API desde la aplicación Cordova, recibo el siguiente JSON

{"access_token":"some token","token_type":"bearer","expires_in":86399}

El problema es que necesito más información sobre el usuario. Por ejemplo, tengo un campo UserGuid en la base de datos y quiero enviarlo a la aplicación Cordova cuando el inicio de sesión sea exitoso y usarlo más adelante en otras solicitudes. ¿Puedo incluir otra información para devolver al cliente, que no sea"access_token", "token_type" y"expires_in"? Si no, ¿cómo puedo obtener el usuario en la API en función de laaccess_token?

EDITAR:

Creo que encontré una solución alternativa. Agregué el siguiente código dentroGrantResourceOwnerCredentials

identity.AddClaim(new Claim(ClaimTypes.Name, user.UserGuid.ToString()));

y después de eso, accedo al GUID dentro de mi controlador de esta manera:User.Identity.Name

También puedo agregar el guid con un nombre personalizadoidentity.AddClaim(new Claim("guid", user.UserGuid.ToString()));

Todavía estoy interesado en saber si hay una manera de devolver más datos al cliente con el token portador JSON.

Respuestas a la pregunta(2)

Su respuesta a la pregunta