Правильный токен для использования с GraphQL?

#amazon-web-services #flutter #graphql

#amazon-web-services #флаттер #graphql

Вопрос:

Я использую последний официальный плагин aws и плагин flutter graphql. Я хочу использовать AppSync. И в graphql readme описано, как это сделать.

Для использования с API AppSync GraphQL, авторизованным в пользовательских пулах AWS Cognito, просто передайте токен JWT для вашего сеанса пользователя Cognito по ссылке AuthLink:

 // Where `session` is a CognitorUserSession
// from amazon_cognito_identity_dart_2
final token = session.getAccessToken().getJwtToken();

final AuthLink authLink = AuthLink(
  getToken: () => token,
);
  

Моя проблема связана с плагином aws, есть метод с именем, fetchAuthSession который возвращает сеанс с разными токенами. Но он не возвращает jwtToken.. Используются ли какие-либо из возвращенных токенов для AppSync? Пожалуйста, щелкните ссылку сеанса для разных токенов…

Комментарии:

1. удалось ли вам решить эту проблему? Я также пытаюсь выяснить, как вызвать AppSync!!

2. токен вызывается accessToken смотрите ниже, как его получить @AshootoshBhardwaj

3. Спасибо.. Я использовал собственную страницу аутентификации cognito, используя Webview внутри Flutter. Токен доступа и токен ID были частью аутентифицированного URL. После этого я использовал substring для анализа токена доступа, и это сработало.. В любом случае спасибо!

Ответ №1:

Токен, который вам нужен для AppSync, можно получить с помощью плагина Amplify. Он называется accessToken

 Future<String> getAcessToken() async {
    CognitoAuthSession res = await Amplify.Auth.fetchAuthSession(options: CognitoSessionOptions(getAWSCredentials: true));
    final accessToken = res.userPoolTokens.accessToken;
    return accessToken;
  }