用户将在我的 Web 应用程序上创建一个帐户。该应用程序需要通过向用户提供的手机号码发送短信来验证用户身份。文本消息是一个简短的唯一代码,用户需要在网络浏览器中输入该代码,以便应用程序对用户进行身份验证。
如何为此用例配置 Amazon AWS SNS?
据我所知,SNS 是由网站管理员选择 topic
来运作的。然后每个用户订阅该主题。然后站长将消息广播样式发送给该主题的所有订阅者。这不符合我向每个用户发送唯一消息的要求。或者,创建一个单独的 topic
对于每个电话号码都太麻烦了,更不用说在保护所有电话号码的隐私方面造成安全问题。
可以为此用例配置 Amazon AWS SNS 吗?如果是这样,如何?
我正在使用 Java。
最佳答案
AWS 开发工具包中已弃用某些方法。
BasicAWSCredentials awsCredentials = new BasicAWSCredentials("CLIENT-ID", "SECRET-KEY");
AmazonSNS snsClient = AmazonSNSClientBuilder.standard()
.withRegion(Regions.fromName("YOUR_REGION"))
.withCredentials(new AWSStaticCredentialsProvider(awsCredentials)).build();
Map<String, MessageAttributeValue> smsAttributes = new HashMap<String, MessageAttributeValue>();
smsAttributes.put("AWS.SNS.SMS.SenderID",new MessageAttributeValue().withStringValue("SENDER-ID").withDataType("String");
smsAttributes.put("AWS.SNS.SMS.SMSType",new MessageAttributeValue().withStringValue("Transactional").withDataType("String"));
PublishRequest request = new PublishRequest();
request.withMessage("YOUR MESSAGE")
.withPhoneNumber("E.164-PhoneNumber")
.withMessageAttributes(smsAttributes);
PublishResult result=snsClient.publish(request);
关于amazon-web-services - 使用 aws sns 从 Java Web 应用程序发送短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466916/