ax3otp Auth是一个非常简单的Django库,用于使用HTOP准则生成和验证一次性密码。
AX3-OTP-Auth的Python项目详细描述
AX3 OTP身份验证
ax3otp Auth是一个非常简单的Django库,用于使用HTOP准则生成和验证一次性密码。在
安装
从PyPI软件包安装Axes很容易:
$ pip install django-axes
安装包后,需要配置项目设置。在
1。将ax3_OTP
添加到您的INSTALLED_APPS
中:
2。将ax3_OTP_Auth.backends.OTPAuthBackend
添加到AUTHENTICATION_BACKENDS
的顶部:
AUTHENTICATION_BACKENDS = [
'ax3_OTP_Auth.backends.OTPAuthBackend',
# Django ModelBackend is the default authentication backend.
'django.contrib.auth.backends.ModelBackend',
]
3.将以下内容添加到网址.py公司名称:
urlpatterns = [
path('OTP-Auth/', include('ax3_OTP_Auth.urls', namespace='otp_auth')),
]
4.创建模板的html按钮:
<button class="js-otp-auth" type="button" otp-login="{% url 'otp_auth:start' %}" otp-redirect="{% url 'login' %}">
Login
</button>
5。为打开的OTP窗口创建Javascript:
$(() => {
$('.js-otp-auth').on('click', function () {
let redirect = $(this).attr('otp-redirect');
let OTPLoginUrl = $(this).attr('otp-login');
let width = 420;
let height = 470;
let top = (screen.height / 2) - (height / 2);
let left = (screen.width / 2) - (width / 2);
window.open(`${window.origin}${OTPLoginUrl}?redirect=${redirect}`, '_blank', `location=yes, scrollbars=yes, status=yes, width=${width}, height=${height}, top=${top}, left=${left}`);
});
});
配置
如果需要为整个管道传递任何参数,可以使用OTP_AUTH_PARAMS
:
`OTP_AUTH_PARAMS = ['param']`
如果需要更改生命周期缓存值,可以使用OTP_AUTH_TTL
:
`OTP_AUTH_TTL = 60 * 60 * 5 # 5 minutes`
如果您需要更改短信:
`OTP_AUTH_MESSAGE = 'Utiliza {} como código de inicio de sesión.`
配置允许的国家/地区列表: 哥伦比亚=57 阿根廷=54 玻利维亚=591 智利=56 哥斯达黎加=506 古巴=53 多米尼加共和国=809 厄瓜多尔=593 危地马拉=502 墨西哥=52 秘鲁=51
OTP_AUTH_COUNTRIES_CODES = [57, 54]
使用以下变量更改颜色、品牌名称和徽标:
OTP_PRIMARY_COLOR = '#eb6806'
OTP_BACKGROUND_BTN = '#eb6806'
OTP_BACKGROUND_BTN_HOVER = '#000'
OTP_COLOR_TEXT_BTN = '#fff'
OTP_COLOR_TEXT_BTN_HOVER = '#fff'
OTP_BRAND_NAME = 'Axiacore'
OTP_BRAND_IMG = 'user-relative-path'
NSN配置
AX3 OTP使用NSN AWS服务发送消息,请使用以下策略创建组和AIM用户:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish",
"sns:SetSMSAttributes",
"sns:GetSMSAttributes"
],
"Resource": "*"
}
]
}
将AIM用户凭据设置为您的设置:
OTP_AUTH_AWS_ACCESS_KEY_ID = ''
OTP_AUTH_AWS_SECRET_ACCESS_KEY = ''
OTP_AUTH_AWS_DEFAULT_REGION = 'us-west-2'
认证和授权
经过身份验证的用户需要一个OTP,这个OTP是由AWS SNS服务发送的,一旦代码有效,系统将返回一个令牌,该令牌必须用于获得请求的电话号码。为此,您可以使用“获取手机号码”:
hotp = HOTP(session_key=request.session.session_key)
phone_number = htop.get_phone_number(code='123')
自定义短信网关
使用函数路径将OTP_CUSTOM_SMS_GATEWAY
设置为您的设置,并且该函数必须是receivecountry_code
、phone_number
和{
OTP_CUSTOM_SMS_GATEWAY = 'app.utils.send_sms'
风格风格
对于开发而言,在提交任何更改之前,porpus必须编译SASS文件。在
从此链接安装节点:
https://nodejs.org/en/
然后安装sass
$ sudo npm install -g sass
它要求你输入密码,写下电脑用户的密码。在
编译SASS
要更改网页的样式,您需要编辑Sass的文件和 然后在项目的根文件夹上运行此命令,将其编译为CSS:
$ sass --watch ax3_OTP_Auth/static/otp_auth/sass/styles.sass ax3_OTP_Auth/static/otp_auth/css/styles.css
- 项目
标签: