gpt4 book ai didi

amazon-web-services - 我应该将 Cognito 删除用户逻辑放在前端还是后端?

转载 作者:行者123 更新时间:2023-12-02 02:31:30 25 4
gpt4 key购买 nike

对于在我的网站中创建认知用户,逻辑如下。

注册.jsx

import { Auth } from "aws-amplify";
...
// create user in Cognito User Pool in frontend
const signUpResponse = await Auth.signUp({
username,
password,
attributes: {
email: email
}
})
// using lambda function and api gateway for this request
// in order to create user in my "User" table in Dynamodb
const createAdminResponse = await APIHandler.createAdmin(payload)
...

用户表
-id(字符串):分区键

对于用户删除,我正在考虑最好的方法是什么。
这是我当前用于删除数据库中用户的 lambda 函数

'use strict'
const AWS = require('aws-sdk');

exports.handler = async function (event, context, callback) {
const documentClient = new AWS.DynamoDB.DocumentClient();

let responseBody = "";
let statusCode = 0;

const { id } = event.pathParameters;

const params = {
TableName : "User",
Key: {
id: id,
}
};

try{
const data = await documentClient.delete(params).promise();
responseBody = JSON.stringify(data);
statusCode = 204
}catch(err){
responseBody = `Unabel to delete admin: ${err}`;
statusCode = 403
}

const response = {
statusCode: statusCode,
headers:{
"Content-Type": "application/json",
"access-control-allow-origin": "*"
},
body: responseBody
}

return response
}

我正在考虑是删除前端 Cognito 用户池中的用户还是包含在上面的 lambda 函数中,或者创建一个单独的 lambda 函数。

这是从文档中复制的。

const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: 'access key id',
secretAccessKey: 'secret access key',
region: 'region',
});
const cognito = new AWS.CognitoIdentityServiceProvider();

await cognito.adminDeleteUser({
UserPoolId: 'pool id',
Username: 'username',
}).promise();

如果我在 lambda 函数中使用它,我还需要在代码中包含我的 aws 配置,这不是不好的做法吗?

但我不确定应该在哪里使用该代码,谁能给点建议吗?

最佳答案

设计实际上取决于你,它取决于多种因素,但我在这里起草了一些选项

  1. 如果您只有 1 个前端客户端,并且希望快速封装您的功能,那么您可以将逻辑直接放到前端

  2. 如果您有多个前端,例如 Web、应用程序等,那么您最好将后端的逻辑作为 api 以便可以在各个应用程序中重复使用

  3. 如果您打算扩展逻辑,那么最好从后端放置逻辑

关于amazon-web-services - 我应该将 Cognito 删除用户逻辑放在前端还是后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64971145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com