Я создал приложение WebApi и приложение для Кордовы. Я использую http-запросы для связи между приложением Cordova и WebApi. В WebApi я реализовал генерацию токенов-носителей OAuth.
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());
    }
 и это находится внутри реализации SimpleAuthorizationServerProvider
 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);
    }
после успешного входа в API из приложения Cordova, я получаю следующий JSON
{"access_token":"some token","token_type":"bearer","expires_in":86399}
Проблема заключается в том, что мне требуется дополнительная информация о пользователе. Например, у меня есть поле UserGuid в базе данных, и я хочу отправить его в приложение Cordova, когда логин будет успешным, и использовать его позже в других запросах. Могу ли я включить другую информацию для возврата клиенту, кроме "access_token", "token_type" и "expires_in"? Если нет, как я могу получить пользователя в API на основе access_token?
EDIT:
Я думаю, что нашел обходное решение.
Я добавил следующий код внутри GrantResourceOwnerCredentials
identity.AddClaim(new Claim(ClaimTypes.Name, user.UserGuid.ToString()));
 и после этого я обращаюсь к указателю внутри моего контроллера следующим образом: User.Identity.Name
Я также могу добавить guid с пользовательским именем identity.AddClaim(new Claim("guid", user.UserGuid.ToString()));
Мне все еще интересно узнать, есть ли способ вернуть больше данных клиенту с маркером-носителем JSON.