使用Django和Twilio通过SMS进行一次性用户身份验证
我正在用Django为我正在创建的一个移动应用程序编写一个后端。我需要在用户第一次通过短信打开移动应用程序时对其进行身份验证,以验证其是否为真人。需要做的是:用户在应用程序中输入电话号码,服务器然后向用户发送带有身份验证码的短信,用户然后在应用程序中输入身份验证码,服务器验证他们在应用程序中输入的代码是否与他们通过短信收到的代码相同使用Django和Twilio通过SMS进行一次性用户身份验证,django,sms,twilio,Django,Sms,Twilio,我正在用Django为我正在创建的一个移动应用程序编写一个后端。我需要在用户第一次通过短信打开移动应用程序时对其进行身份验证,以验证其是否为真人。需要做的是:用户在应用程序中输入电话号码,服务器然后向用户发送带有身份验证码的短信,用户然后在应用程序中输入身份验证码,服务器验证他们在应用程序中输入的代码是否与他们通过短信收到的代码相同 我需要在Django项目中使用Twilio。我只想知道最好的办法是什么?这个(移动应用程序)的前端不是我要问的,我要问的是后端应该实现的代码。我很难找到最新的dja
我需要在Django项目中使用Twilio。我只想知道最好的办法是什么?这个(移动应用程序)的前端不是我要问的,我要问的是后端应该实现的代码。我很难找到最新的django twilio集成文档来实现这一点。Tjango twilio的福音传道者和维护者 您希望构建的内容非常容易,我可以在这里为您概述以下步骤:
- 创建一个Django模型,用于存储用户号码和生成的密码
- 当一个新用户创建时,使用手机号码和短信息向他们发送代码
- 当他们输入您发送给他们的密码时,请将其与存储在数据库中的密码进行交叉引用
- 如果号码正确:验证他们,如果不正确,告诉他们是错误的,并再次向他们发送短信
我希望这是明确的,如果你有任何问题,请随时联系paul@twilio.com您可以将django密码用作项目中的应用程序。 它公开API来“注册”手机号码,并通过基于SMS的密码“验证”。它使用手机号码和设备id对作为唯一项。它还为来自移动应用的未来授权请求生成并返回令牌。您可以使用Twilio或任何其他SMS api发送SMS
感谢您对django密码的反馈免责声明:我是django phone verify的维护者 您希望通过应用程序实现的目标非常简单。它附带了已经集成的Twilio和少数端点,您可以根据您的用例进行扩展 此软件包旨在验证特定客户请求的电话号码是否属于他们。它还负责确保同一设备提供初始请求发送密码的密码验证,从而节省您几个小时的工作 这个软件包也不会弄乱您当前的用户模型。您可以完全出于一件事自由地使用此软件包:
验证电话号码
。您是否为用户、公司等做这件事取决于您的用例
它遵循Unix哲学的做一件事;做好这件事
装置
配置
- 将应用程序添加到已安装的应用程序:
- 在
settings.py文件中添加设置:
- 迁移数据库:
您将获得两个端点(),一个用于注册电话号码,另一个用于验证密码。您可以覆盖verify endpoint以创建用户,如最近我正在寻找任何库或方案,以便通过sms登录/注册用户(发送sms代码,然后验证) 简短解决方案:
恐怕这个问题对Stackoverflow来说太宽泛了。也就是说,这样做应该不会太难。您可以为验证代码创建一个模型。每次需要验证用户时,都会生成一个唯一的代码。这将通过SMS发送给用户,输入代码后,应用程序将检查URL/REST端点(myapp.com/verify/)。如果在数据库中有一个验证码,它还没有被验证,所以考虑用户实际并删除验证码。否则,返回错误消息It’s good。刚刚用叉子叉了起来。:)我需要重写默认用户身份验证的东西。这很接近。谢谢你提到你的django手机。许多人不这样做,只是打着帮助的幌子在这里推销他们的包裹。非常感谢。嗨@ABN谢谢!几天前,我刚刚发布了该软件包的另一个版本,现在它也支持与Nexmo的集成。
pip install django-phone-verify
# In settings.py:
INSTALLED_APPS = [
...
'phone_verify',
]
# Settings for phone_verify
PHONE_VERIFICATION = {
'BACKEND': 'phone_verify.backends.twilio.TwilioBackend',
'TWILIO_SANDBOX_TOKEN':'123456',
'OPTIONS': {
'SID': 'fake',
'SECRET': 'fake',
'FROM': '+14755292729'
},
'TOKEN_LENGTH': 6,
'MESSAGE': 'Welcome to {app}! Please use security code {otp} to proceed.',
'APP_NAME': 'Phone Verify',
'OTP_EXPIRATION_TIME': 3600 # In seconds only
}
python manage.py migrate