Использование: Nodejs + aws-ampify
Из документации для усиления aws , но я не проверил пользователя успешно после того, как он вошел в систему.
index.js
const Amplify = require('aws-amplify');
global.fetch = require('node-fetch'); // [source](https://github.com/aws-amplify/amplify-js/issues/876)
global.navigator = {};
Amplify.default.Auth({
identityPoolId: IDENTITYPOOLID,
region: REGION,
userPoolId: USERPOOLID,
userPoolWebClientId: APPCLIENTID,
});
Amplify.Auth.signIn(username, password).then(user => {
localstorage.set('user', JSON.stringify(user));
console.log(user); // "cognitoUser" object
return Amplify.Auth.getSession();
}).then(session => {
console.log(session); // "CognitoSession" object
}).catch(err => {
console.log(err);
});
// PROBLEM
Amplify.Auth.getSession().then(session => {
console.log(session);
}).catch(err => {
console.log(err); // PRINT: no current user
});
Похоже, я не могу получить сеанс пользователя, если он не заключен в Auth.signIn
.Я попытался использовать;
// Problem
let userObj = JSON.parse(localstorage.get('use'));
Amplify.Auth.userSession(userObj).then(data => {
console.log(data);
});
/// getSession is not a function
console.log(Amplfy.Auth.userSession); // PRINT: [Function]
Я могу убедиться, что userSession является функцией и находится внутри библиотеки, и проблема, которую я вижу, состоит в том, что getSession()
не находится внутри объекта CognitoUser, который я храню в локальном хранилище.
Я не могу найти какие-либо функции, которые бы помогли мне преобразовать объект localstorage в CognitoObj, если в этом проблема.Единственное, что я могу сделать, это подписывать пользователя каждый раз, что пренебрегает всей целью этой библиотеки.
Я что-то пропустил?почему Amplify.Auth
не работает?Есть ли способ проверить, не истек ли сеанс пользователя, и обновить его вручную?
У меня есть похожая проблема с github .