В моей облачной функции мне нужно создать пользовательский токен и вставить несколько пользовательских утверждений. Я делаю так:
let additionalClaims = {
'https://hasura.io/jwt/claims': {
'x-hasura-default-role': 'admin',
'x-hasura-allowed-roles': ['user', 'admin'],
}
}
admin.auth().createCustomToken(userId,additionalClaims).then(function (customToken) {
console.log(customToken);
response.end(JSON.stringify({
token: customToken
}))
})
.catch(function (error) {
console.log('Error creating custom token:', error);
});
Заявки добавляются, но они помещаются в узел "заявок", который выглядит следующим образом:
{
"aud":
"https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",
"iat": 1573160781,
"exp": 1573164381,
"iss": "postgrest-b4c8c@appspot.gserviceaccount.com",
"sub": "postgrest-b4c8c@appspot.gserviceaccount.com",
"uid": "mikeuserid",
"claims": {
'https://hasura.io/jwt/claims': {
'x-hasura-default-role': 'admin',
'x-hasura-allowed-roles': ['user', 'admin'],
}
}
}
}
Однако API Iя звоню, ожидает их в корне, как это:
{
"aud":
"https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",
"iat": 1573160781,
"exp": 1573164381,
"iss": "postgrest-b4c8c@appspot.gserviceaccount.com",
"sub": "postgrest-b4c8c@appspot.gserviceaccount.com",
"uid": "mikeuserid",
"https://hasura.io/jwt/claims": {
"x-hasura-default-role": "admin",
"x-hasura-allowed-roles": ["user", "admin"],
}
}
}
Как я могу добавить претензии, чтобы они добавлялись в корень, а не в «претензии» ??
К вашему сведению,если у меня есть существующий пользователь, и я использую этот синтаксис admin.auth (). setCustomUserClaims (customToken, AdditionalClaims),
Правильно добавляет их root.