Edited readme, improved frontend
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# django-mfa2
|
# django-mfa2
|
||||||
A Django app that handles MFA, it supports TOTP, U2F, FIDO2 U2F (Web Authn), Email Tokens , and Trusted Devices
|
A Django app that handles MFA, it supports TOTP, U2F, FIDO2 U2F (Web Authn), Email Tokens , Trusted Devices and backup codes.
|
||||||
|
|
||||||
### Pip Stats
|
### Pip Stats
|
||||||
[](https://badge.fury.io/py/django-mfa2)
|
[](https://badge.fury.io/py/django-mfa2)
|
||||||
@@ -91,6 +91,7 @@ Depends on
|
|||||||
* TOTP
|
* TOTP
|
||||||
* Trusted_Devices
|
* Trusted_Devices
|
||||||
* Email
|
* Email
|
||||||
|
* RECOVERY
|
||||||
|
|
||||||
**Notes**:
|
**Notes**:
|
||||||
* Starting version 1.1, ~~FIDO_LOGIN_URL~~ isn't required for FIDO2 anymore.
|
* Starting version 1.1, ~~FIDO_LOGIN_URL~~ isn't required for FIDO2 anymore.
|
||||||
@@ -136,7 +137,7 @@ Depends on
|
|||||||
```<li><a href="{% url 'mfa_home' %}">Security</a> </li>```
|
```<li><a href="{% url 'mfa_home' %}">Security</a> </li>```
|
||||||
|
|
||||||
|
|
||||||
For Example, See 'example' app
|
For Example, See 'example' app and look at EXAMPLE.md to see how to set it up.
|
||||||
|
|
||||||
# Going Passwordless
|
# Going Passwordless
|
||||||
|
|
||||||
|
|||||||
@@ -8,12 +8,20 @@
|
|||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
}
|
}
|
||||||
|
.tokenrow{
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
.row{
|
.row{
|
||||||
margin: 0px;
|
margin: 3px;
|
||||||
}
|
}
|
||||||
.crossed{
|
.crossed{
|
||||||
text-decoration: line-through;
|
text-decoration: line-through;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.return{
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
<script src="{% static 'mfa/js/qrious.min.js' %}" type="text/javascript"></script>
|
<script src="{% static 'mfa/js/qrious.min.js' %}" type="text/javascript"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
@@ -28,11 +36,11 @@
|
|||||||
for (let i = 0; i < data.keys.length; i++) {
|
for (let i = 0; i < data.keys.length; i++) {
|
||||||
if (data.enable[i] == 0)
|
if (data.enable[i] == 0)
|
||||||
{
|
{
|
||||||
htmlkey +="<pre class='crossed'>" +data.keys[i] + "</pre>" + "<br>"
|
htmlkey +="<pre class='crossed'>" +data.keys[i] + "</pre>"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
htmlkey +="<pre>" +data.keys[i] + "</pre>" + "<br>"
|
htmlkey +="<pre>" +data.keys[i] + "</pre>"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
document.getElementById('tokens').innerHTML = htmlkey
|
document.getElementById('tokens').innerHTML = htmlkey
|
||||||
@@ -41,7 +49,7 @@
|
|||||||
};
|
};
|
||||||
function confirmRegenerateTokens() {
|
function confirmRegenerateTokens() {
|
||||||
$("#modal-title").html("Are you sure you want to regenerate your recovery tokens?")
|
$("#modal-title").html("Are you sure you want to regenerate your recovery tokens?")
|
||||||
$("#modal-body").html("<button onclick='regenerateTokens()' class='btn btn-success'>Regenerate</button")
|
$("#modal-body").html("<button onclick='regenerateTokens()' class='btn btn-success'>Regenerate</button>")
|
||||||
$("#popUpModal").modal('show')
|
$("#popUpModal").modal('show')
|
||||||
}
|
}
|
||||||
function regenerateTokens() {
|
function regenerateTokens() {
|
||||||
@@ -61,27 +69,30 @@
|
|||||||
<br/>
|
<br/>
|
||||||
<div class="container d-flex justify-content-center">
|
<div class="container d-flex justify-content-center">
|
||||||
<div class="col-md-6 col-md-offset-3" id="two-factor-steps">
|
<div class="col-md-6 col-md-offset-3" id="two-factor-steps">
|
||||||
<div class="row" align="center">
|
|
||||||
|
<div class="row">
|
||||||
|
|
||||||
<h4>Token List</h4>
|
<h4>Token List</h4>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="tokens">
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row" align="center">
|
<div class="tokenrow" id="tokens">
|
||||||
<button onclick="confirmRegenerateTokens()" class="btn btn-default btn-secondary" role="button">Regenarate tokens</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
<div align="center" class="alert alert-success" style="display: none" id="return">
|
<div class="col-md-6" style="padding-left: 0px">
|
||||||
|
|
||||||
<a href="{{redirect_html}}"> {{reg_success_msg}}</a>
|
<button onclick="confirmRegenerateTokens()" class="btn btn-success">Regenarate tokens</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6" align="right" style="padding-right: 30px">
|
||||||
|
|
||||||
|
<a href="{{redirect_html}}" class="btn btn-default btn-secondary" role="button"> {{reg_success_msg}}</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% include "modal.html" %}
|
{% include "modal.html" %}
|
||||||
|
|||||||
Reference in New Issue
Block a user