你会认为人们会回答这个问题几十次甚至几百次,但令我惊讶的是,人们似乎对iOS开发中的这些问题不感兴趣?
我正在创建一个需要人们登录的应用程序(Xcode,Swift 4)。验证后的凭据将存储在各种类型的数据库中,但在帐户存在之前,用户必须注册。注册过程应包括电子邮件验证和稍后的电话号码验证。
如何使用从应用或应用程序附带的某个服务器发送的确认电子邮件验证某人的电子邮件地址?我特别不想使用Parse等外部库我在网上找到的Firebase。如果Apple Dev API中有一个我缺少的库,我将非常感谢你在正确的方向上轻推。
感谢任何可以帮助我的人。
答案 0 :(得分:1)
您无法使用用户凭据和目标用户的SMTP服务器选择代表用户以编程方式发送电子邮件。即使你想出了一个技巧,苹果也不会因为用户隐私而在App Store中允许它。安全风险。
您可以尝试将一整堆代码放入您的应用中,以便使用应用中的硬编码凭据与您自己的SMTP服务器进行通信,但安全地执行此操作需要做很多工作,我怀疑它会很多一般的工作。
您最好的选择是让您的应用与您的服务器进行通信(NSURLSession)以发送用户的注册信息,让服务器随时执行所需操作,包括通过电子邮件向用户发送确认电子邮件。
这些教程可以帮助您:
关于如何让服务器发送短信,请参阅this SO answer
答案 1 :(得分:0)
(假设你有某种类型的服务器管理知识)
是的,你不需要Firebase
或Parse
来实现这一目标,但它没有痛苦:(
您想要服务器或(Google Cloud Functions或AWS Lambda)吗?
(请注意,您的应用需要通过HTTP
或HTTPS
请求与每个选项进行对话。
(您可以在AWS EC2,Google Cloud VM,Digital Ocean的任何地方获得该VM)
让我们从服务器开始,您需要创建一些REST API
并从特定端口80或443(安全端口)运行它。您可以使用Swift(查看有助于创建其余api的Vapor等库,或查看其他库),而不是学习新语言。
**如果你没有使用swift,那么使用javascript(Express等的Node.js库会帮你创建那个api)**
电子邮件或电话验证逻辑(服务器端,您的API具有处理验证的特定路由):
(查找允许在服务器端发送电子邮件的库。)
Dictionary
包含电子邮件或电话号码Twillio api
通过短信发送代码。要结束 api路由/路径的响应,send this random code to app
(将其缓存到UserDefault
或您喜欢的任何内容,因为当用户输入收到的代码时,你需要验证它(因为从服务器端生成的代码被缓存,我的意思是现在你得到了要点)
管理该VM:
保持vm端口锁定来自外部防火墙
如果你一次收到很多请求怎么办(你应该有负载平衡))
云功能或AWS Lambda(而不是ELB + Api Gateway + Lambda):
无需管理服务器
javascript or python
要确保从您的应用到您的api之间的连接,请查看 JWT令牌,您需要确保其他人无法访问您的api中的任何路由