Appsyncgraphqlauthorizationwithcognito
创始人
2024-09-11 13:31:26
0

在AWS AppSync中使用Cognito进行授权验证,需要完成以下步骤:

  1. 在AWS Cognito中创建用户池和身份池。
  2. 在AWS AppSync中创建API和数据源,并设置数据源连接到相应的AWS服务。
  3. 在AppSync中定义数据模型和解析器。
  4. 在AppSync中设置授权验证,使用Cognito User Pool或Identity Pool进行身份验证。

下面是一个使用Cognito User Pool进行授权验证的JavaScript示例代码:

const aws = require('aws-sdk');
const AmazonCognitoIdentity = require('amazon-cognito-identity-js');

const poolData = {
  UserPoolId: 'your_user_pool_id',
  ClientId: 'your_user_pool_client_id'
};

const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);

exports.handler = async (event) => {
  const token = event.authorizationToken;
  const refreshToken = event.refreshToken;

  if (!token || !refreshToken) {
    throw new Error('Unauthorized');
  }

  const checkToken = new Promise((resolve, reject) => {
    const userData = {
      Username: 'username',
      Pool: userPool,
      Storage: new AmazonCognitoIdentity.LocalStorage()
    };

    const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
    const sessionData = {
      RefreshToken: new AmazonCognitoIdentity.CognitoRefreshToken({ RefreshToken: refreshToken })
    };

    cognitoUser.refreshSession(sessionData, (err, session) => {
      if (err) {
        reject(err);
      } else {
        resolve(session.isValid());
      }
    });
  });

  const result = await checkToken;
  if (!result) {
    throw new Error('Unauthorized');
  }

  const decodedToken = new AmazonCognitoIdentity.CognitoIdToken({ IdToken: token }).decodePayload();
  const headers = {
    'access_token': token,
    'id_token': token,
    'client_id': decodedToken.aud,
    'username': decodedToken.email
  };

  return {
    principalId: decodedToken.sub,
    policyDocument: {
      Version: '2012-10-17',
      Statement: [{
        Action: '

相关内容

热门资讯

我来教教大家!潮友会透视辅助教... 我来教教大家!潮友会透视辅助教程,道游互娱辅助,详细方法(有挂教程)1、完成潮友会透视辅助教程有辅助...
推荐十款!微信小程序挂件辅助,... 推荐十款!微信小程序挂件辅助,边锋老友辅助器,详细器(有挂规律)1、让任何用户在无需微信小程序挂件辅...
一分钟揭秘!圣游辅助器,吉祥填... 一分钟揭秘!圣游辅助器,吉祥填大坑机制原理,详细神器(有挂透明挂)1、超多福利:超高返利,海量正版游...
总算了解!宁夏欢乐划水辅助,微... 总算了解!宁夏欢乐划水辅助,微信小程序中至上饶510k辅助器,详细攻略(有挂助手)1、操作简单,无需...
我来教教大家!微信小程序游戏破... 您好,微信小程序游戏破解微乐游戏这款游戏可以开挂的,确实是有挂的,需要了解加去威信【13670430...
玩家攻略!微信雀神挂件辅助器,... 玩家攻略!微信雀神挂件辅助器,微信小程序免费黑科技,详细工具(存在有挂);1、许多玩家不知道微信小程...
终于知道!欢乐茶馆脚本辅助,福... 终于知道!欢乐茶馆脚本辅助,福建天天开心攻略,详细技巧(有挂详细)亲,关键说明,欢乐茶馆脚本辅助透视...
查到实测!福建兄弟13水辅助,... 查到实测!福建兄弟13水辅助,川游游戏辅助,详细技巧(有挂技巧)1、游戏颠覆性的策略玩法,独创攻略技...
实测分享!陕麻全黑科技,纳祥游... 实测分享!陕麻全黑科技,纳祥游戏链接辅助,详细脚本(有挂教程)1、纳祥游戏链接辅助辅助软件下载优化,...
盘点一款!微信边锋辅助挂件,同... 盘点一款!微信边锋辅助挂件,同城上饶辅助,详细工具(有挂教学)1、微信边锋辅助挂件辅助器安装包、微信...