Compare commits

...

12 Commits

Author SHA1 Message Date
Mohamed El-Kalioby
a577c80cc3 Final touches 2021-01-18 19:31:23 +03:00
Mohamed El-Kalioby
66cf103bca Fixes 2021-01-18 19:12:12 +03:00
Mohamed El-Kalioby
53f936a2c6 Testing Touch ID 2021-01-18 18:53:11 +03:00
Mohamed El-Kalioby
6f4c3e0486 closes #31 2020-12-09 07:45:20 +03:00
Mohamed El-Kalioby
b66ae97a0d Bumped version to 2.0.5 2020-12-08 17:38:19 +03:00
Mohamed El-Kalioby
2ced125e9f closes #30 2020-12-08 17:29:14 +03:00
Mohamed El-Kalioby
fb2f52c8ea Adding Thanks to swainn 2020-11-14 12:51:26 +03:00
Mohamed El-Kalioby
91d66e6525 Fix Styles 2020-11-14 12:34:02 +03:00
Mohamed El-Kalioby
8fe7531bf4 Added Conda Stats 2020-11-14 12:32:49 +03:00
Mohamed El-Kalioby
b2764880a8 Added Conda forge installation method 2020-11-14 12:24:30 +03:00
Mohamed El-Kalioby
0668e1a34a Added a yml file 2020-11-12 08:40:58 +03:00
Mohamed El-Kalioby
4e063a2268 Update README.md 2020-11-12 08:24:47 +03:00
9 changed files with 71 additions and 12 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
tidelift: "pypi/django-mfa2"

View File

@@ -1,5 +1,12 @@
# Change Log
## 2.0.5
* Fixed issue in __version__
## 2.0.4
* Fixed: Closes #30
## 2.0.3
* Fixed: __version__ to show correct version

View File

@@ -1,9 +1,15 @@
# django-mfa2
A Django app that handles MFA, it supports TOTP, U2F, FIDO2 U2F (Web Authn), Email Tokens , and Trusted Devices
### Pip Stats
[![PyPI version](https://badge.fury.io/py/django-mfa2.svg)](https://badge.fury.io/py/django-mfa2)
[![Downloads Count](https://static.pepy.tech/personalized-badge/django-mfa2?period=total&units=international_system&left_color=black&right_color=green&left_text=Downloads)](https://pepy.tech/project/django-mfa2)
### Conda Stats
[![Conda Recipe](https://img.shields.io/badge/recipe-django--mfa2-green.svg)](https://anaconda.org/conda-forge/django-mfa2)
[![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/django-mfa2.svg)](https://anaconda.org/conda-forge/django-mfa2)
[![Conda Version](https://img.shields.io/conda/vn/conda-forge/django-mfa2.svg)](https://anaconda.org/conda-forge/django-mfa2)
Web Authencation API (WebAuthn) is state-of-the art techology that is expected to replace passwords.
![Andriod Fingerprint](https://cdn-images-1.medium.com/max/800/1*1FWkRE8D7NTA2Kn1DrPjPA.png)
@@ -32,9 +38,21 @@ Depends on
* python-jose
* fido2==0.8.1
# Installation
1. `pip install django-mfa2`
1. using pip
`pip install django-mfa2`
2. Using Conda forge
`conda config --add channels conda-forge`
`conda install django-mfa2`
For more info, see the conda-forge repo (https://github.com/conda-forge/django-mfa2-feedstock)
Thanks for [swainn](https://github.com/swainn) for adding package to conda-forge
# Usage
1. in your settings.py add the application to your installed apps
```python
INSTALLED_APPS=(
@@ -160,3 +178,7 @@ function some_func() {
* [swainn](https://github.com/swainn)
* [unramk](https://github.com/unramk)
* [willingham](https://github.com/willingham)
# Security contact information
To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure.

View File

@@ -1 +1 @@
__version__="2.0.3"
__version__="2.1.0b1"

View File

@@ -2,8 +2,9 @@ from django.db import models
from jsonfield import JSONField
from jose import jwt
from django.conf import settings
from jsonLookup import shasLookup
from jsonLookup import shasLookup, hasLookup
JSONField.register_lookup(shasLookup)
JSONField.register_lookup(hasLookup)
class User_Keys(models.Model):
username=models.CharField(max_length = 50)

9
mfa/static/mfa/js/ua-parser.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,7 @@
{% load static %}
{% block head %}
<script type="application/javascript" src="{% static 'mfa/js/cbor.js'%}"></script>
<script type="application/javascript" src="{% static 'mfa/js/ua-parser.min.js'%}"></script>
<script type="application/javascript">
function begin_reg(){
fetch('{% url 'fido2_begin_reg' %}',{}).then(function(response) {
@@ -40,7 +41,17 @@
$("#res").html("<div class='alert alert-danger'>Registeration Failed as " +reason +", <a href='javascript:void(0)' onclick='begin_reg()'> try again </a> or <a href='{% url 'mfa_home' %}'> Go to Security Home</a></div>")
})
}
$(document).ready(setTimeout(begin_reg,500))
$(document).ready(function (){
ua=new UAParser().getResult()
if (ua.browser.name == "Safari")
{
$("#res").html("<button class='btn btn-success' onclick='begin_reg()'>Start...</button>")
}
else
{
setTimeout(begin_reg, 500)
}
})
</script>
{% endblock %}
@@ -55,8 +66,8 @@
<div class="panel-body">
<div class="row alert alert-pr" id="res">
<p style="color: green">Your broswer should ask you to confirm you indentity.</p>
<div class="row alert alert-pr" id="res" align="center">
<p style="color: green">Your browser should ask you to confirm you identity.</p>
</div>
</div>

View File

@@ -1,5 +1,6 @@
{% load static %}
<script type="application/javascript" src="{% static 'mfa/js/cbor.js' %}"></script>
<script type="application/javascript" src="{% static 'mfa/js/ua-parser.min.js' %}"></script>
<div class="row">
<div class="col-sm-10 col-sm-offset-1 col-xs-12 col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
@@ -17,7 +18,9 @@
<br/>
{% endif %}
<p style="color: green">please press the button on your security key to prove it is you.</p>
<div id="res">
<p style="color: green">please press the button on your security key to prove it is you.</p>
</div>
<div id="msgdiv"></div>
{% if mode == "auth" %}
<form id="u2f_login" action="{% url 'fido2_complete_auth' %}" method="post" enctype="multipart/form-data">
@@ -101,7 +104,11 @@
$("#main_paragraph").addClass("alert alert-danger")
$("#main_paragraph").html("FIDO2 must work under secure context")
} else {
authen()
ua=new UAParser().getResult()
if (ua.browser.name == "Safari")
$("#res").html("<button class='btn btn-success' onclick='authen()'>Authenticate...</button>")
else
authen()
}
});

View File

@@ -4,7 +4,7 @@ from setuptools import find_packages, setup
setup(
name='django-mfa2',
version='2.0.3',
version='2.1.0b1',
description='Allows user to add 2FA to their accounts',
long_description=open("README.md").read(),
long_description_content_type="text/markdown",
@@ -24,9 +24,10 @@ setup(
'ua-parser',
'user-agents',
'python-jose',
'fido2 == 0.8.1',
# 'fido2 == 0.8.1',
'jsonLookup'
],
dependency_links =["https://github.com/Yubico/python-fido2/tarball/master"],
python_requires=">=3.5",
include_package_data=True,
zip_safe=False, # because we're including static files