aws-ampify auth currentSession не возвращает текущего пользователя - PullRequest
0 голосов
/ 05 декабря 2018

Использование: 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 .

...