public async Task <User> GetUserAsync(AuthorizationContext authorizationContext) { if (authorizationContext == null) { throw new ArgumentNullException(nameof(authorizationContext)); } var code = authorizationContext.GetData("code"); var token = await _restClient.ExchangeCode(code); var userResponse = await _restClient.GetUser(token?.AccessToken); return(new User(Name, userResponse.Id) { Name = userResponse.Username, Data = new Dictionary <string, string>() { { "avatarUrl", userResponse.GetAvatarUrl() } } }); }