Я настраиваю конечную точку для сохранения пользовательского атрибута для пользователя в базе данных вместо пула Cognito. Причина, по которой я это делаю, заключается в ограничении пула congnito для изменения атрибутов, и оно очень ограничено только 25 атрибутами.
Проблема в том, что у меня есть ссылка для приглашения от зарегистрированного пользователя с его referralId
. Когда ссылка нажата, она отображает страницу регистрации с просьбой зарегистрироваться незарегистрированному пользователю. Когда он регистрируется и, если обещание Auth.signup
выполнено, он перенаправляется на страницу с благодарностью, в которой он просит подтвердить адрес электронной почты перед входом в систему. На данный момент я могу фактически извлечь referralId
из параметра запроса (http://localhost:3000/invite?referralId={id})
.
Я запутался на этом этапе, как я могу определить свою безсерверную конечную точку, потому что signInSession
является неопределенным, поскольку пользователь еще не подтвержден! Если пользователь входит в свою электронную почту и проверяет электронную почту, я не могу получить referralId
на этом этапе, потому что он был установлен в MessageCustomizations
пула Cognito.
Я попробовал следующий код для настройки конечной точки без сервера
Поскольку я использую реагирование в интерфейсе, вот как я post
запросил referrerId
.
import HttpClient from './httpClient';
class UserCustomAttributesController extends HttpClient {
saveReferrerId = async (referrerId) => {
const response = await this.client.post(`/invite?referredId=${referrerId}`);
return response.data;
};
}
export default new UserCustomAttributesController();
Хотя в бэкэнде,
handler: lib/functions/updateUser/index.handler
events:
- http:
path: /invite
method: put
request:
template:
application/json: '{ "referrerId" : "$input.params(''referrerId'')" }'
cors:
origin: "*"
headers:
- Content-Type
- X-Amz-Date
- Authorization
- X-Api-Key
# - X-Amz-Security-Token
- X-Amz-User-Agent
allowCredentials: true
authorizer:
type: COGNITO_USER_POOLS
authorizerId:
Ref: ApiGatewayAuthorizer
Я хочу сохранить referrerId для пользователя в базе данных. У меня нет никакого лидерства, так как я только начинаю учиться без сервера и aws.