Все, мы используем cognito для нашего безсерверного приложения, как часть новой функциональности, мы используем группы cognito для разрешения на основе ролей. Поэтому, если проблема является частью группы ... у него будет разрешение на добавление некоторых данных, если кнопка добавления не отображается.
Но не удалось получить требуемый результат, выполнив указанные ниже действия, может кто-нибудь мне помочь?
Вот пример кода
event.component. html '' '
<a *ngIf="!_auth.Isgroupin()" routerLink="/cards">Login</a>
<a *ngIf="!_auth.IsLoggedIn()" routerLink="/map">seee</a>
' '*
.... Служба
'' '
signIn(email, password) {
const authenticationData = {
Username : email,
Password : password,
};
const authenticationDetails = new AuthenticationDetails(authenticationData);
const userData = {
Username : email,
Pool : userPool
};
const cognitoUser = new CognitoUser(userData);
return Observable.create(observer => {
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log(result)
var sessionIdInfo = (result.getIdToken().decodePayload());
console.log(sessionIdInfo['cognito:groups'])
console.log('session token: ' + result.getIdToken().getExpiration())
observer.next(sessionIdInfo['cognito:groups']);
observer.next(result);
observer.complete();
},
onFailure: function(err) {
console.log(err);
observer.error(err);
},
});
});
}
Isgroupin():boolean{
var group=( this.getAuthenticatedUser().getSignInUserSession().getIdToken().decodePayload()['cognito:groups']);
return (group['cognito:groups']) != null;
}
IsLoggedIn() {
return userPool.getCurrentUser() != null;
}
' ''