oracle apex电子邮件和短信身份验证

时间:2018-10-24 13:49:11

标签: oracle oracle-apex

我想创建一个具有两种身份验证(SMS和电子邮件)的用户屏幕 用户将首先收到电子邮件以验证并激活其帐户。 之后,他设置了密码,他将收到SMS消息以验证密码。我想在Oracle apex中做到这一点。我尝试了“自定义身份验证”,但没有取得成果,任何人都有实现此目的的好主意。 >

3 个答案:

答案 0 :(得分:0)

在您处理完电子邮件和短信验证之后,您应该将这些数据存储在数据库中,并创建一个用于自定义身份验证的功能,以验证用户是否已经通过验证。

将功能放入共享组件中->身份验证方案->设置->身份验证功能名称

(该函数必须返回true或false才能登录)

答案 1 :(得分:0)

我不喜欢使用SMS进行两因素身份验证,但是如果您必须这样做,也许这可能会演示基于时间的一次性密码(TOTP)的实现,可能会给您一些想法:https://github.com/fuzziebrain/orclapex-tfa-demo < / p>

我也在此处提供了一些背景信息:https://fuzziebrain.com/content/id/1718/

祝你好运!

答案 2 :(得分:0)

我已经在我的APEX项目之一中实现了这一目标,但是仅通过电子邮件即可。对于短信,我在其他上下文中使用它,但是您仍然可以这样做。您将需要一个smtp服务器(您可以在服务器上运行一个),而对于sms,则需要一个外部提供程序。在您的oracle数据库中,创建一个名为OTP(一次性密码)的表。

此表包含用户的外键。用户创建帐户时,请在pl / sql中运行动态操作,该操作将生成一个随机的6位数字,该数字将在您的OTP表中进行加密。此动态操作还将通过APEX_MAIL向用户发送电子邮件。有关如何使用APEX-MAIL的完整文档为here,并且非常易于使用。您可以向用户发送身份验证通过电子邮件的密码。

创建一个名为user_na(未通过身份验证)的新会话用户,并进行设置,以便在他连接时,他只能看到的页面是带有文本字段的页面,用于输入通过电子邮件接收的密码。他输入密码后,以与创建帐户时相同的方式对其进行加密,然后在OTP表中比较密码。如果它们匹配,请将其帐户类型更改为user,然后他将能够访问您使用户可访问的每个页面。

如果您还想发送短信,建议使用此tutorial。如果您想测试,短信提供商可以免费试用。如果您有任何疑问,请随时询问,我们可以轻松为您提供帮助。

注意:如果您不想创建其他session_user,则只需在用户表中添加一列Authenticated。默认情况下将其设置为0,当他输入电子邮件密码时将其设置为1。然后,当他登录时,检查此值是0还是1,以了解您应该将他重定向到哪个页面。