В нашем приложении нам нужна аутентификация с помощью AWS Cognito идентификационный пул с провайдером Google.Мы также используем утверждения о ролевых правилах для сопоставления ролей пользователям по их электронным письмам.
Код внешнего интерфейса для входа в систему выглядит следующим образом:
export function logIn() {
const ga = window.gapi.auth2.getAuthInstance();
return new Promise((resolve, reject) => {
ga.signIn().then(
async (googleUser) => {
console.log({googleUser});
const gaResp = googleUser.getAuthResponse();
console.log({gaResp});
const { id_token, expires_at } = gaResp;
const user = {
email: 'asdasdasd',
name: 'ssssssssssssss',
};
const credentials = await Auth.federatedSignIn(
'google',
{ token: id_token, expires_at },
user,
);
resolve();
console.log({credentials});
},
(error) => {
console.log(error);
},
);
});
}
Появится окно Google, спрашивающее, что пользователь аккаунта чтоиспользовать для аутентификации и вернётся к token_id, который затем используется для Auth.federatedSignIn для получения учетных данных, необходимых для клиента appSync.
Как теперь клиент может получать информацию о ролях, привязанных к нему, с помощью утверждений о правилах ролей пула идентификаторов?Клиент должен знать свою роль, чтобы иметь возможность отображать только соответствующую часть на интерфейсе.