É possível obter informações de perfil em um id_token do Google?

Ao usar o sistema de autenticação OpenIDConnect do Google, é possível especificaremail ouprofile ou ambos noscope parâmetro. Se você solicitar oemail escopo, as reivindicações "email" e "email_verified" serão incluídas noid_token que é retornado como parte de uma sessão de autenticação bem-sucedida do OAuth2.

Aqui está um exemploda documentação do Google:

Carga útil de um token de ID

Um token de ID é um objeto JSON que contém um conjunto de pares nome / valor. Aqui está um exemplo, formatado para facilitar a leitura:

{"iss":"accounts.google.com", 
 "at_hash":"HK6E_P6Dh8Y93mRNtsDB1Q", 
 "email_verified":"true",
 "sub":"10769150350006150715113082367", 
 "azp":"1234987819200.apps.googleusercontent.com", 
 "email":"[email protected]", 
 "aud":"1234987819200.apps.googleusercontent.com", 
 "iat":1353601026, 
 "exp":1353604926,
 "hd":"example.com" 
}

Entretanto, solicitando oprofile O escopo parece não ter nenhum efeito sobre o conteúdo do id_token. Para recuperar as informações do perfil, você deve fazer umasolicitação HTTP separada para um terminal distinto (autenticado com o access_token que você acabou de receber) para obter um documento muito parecido, mas com mais informações:

{
  "kind": "plus#personOpenIdConnect",
  "gender": string,
  "sub": string,
  "name": string,
  "given_name": string,
  "family_name": string,
  "profile": string,
  "picture": string,
  "email": string,
  "email_verified": "true",
  "locale": string,
  "hd": string
}

Idealmente, eu preferiria obter as informações do perfil (apenasname, na verdade) incluídas no JWT id_token em vez de precisar fazer uma chamada separada. Existe alguma maneira de especificar campos adicionais e incluí-los como declarações no id_token? Se não, por que éemail tratado especialmente e retornado no id_token?

questionAnswers(3)

yourAnswerToTheQuestion