2factor authentication via email

This commit is contained in:
Nicolas Lœuillet
2015-10-13 22:43:15 +02:00
parent cf0ea8f113
commit 2db616b586
11 changed files with 394 additions and 111 deletions

View File

@ -0,0 +1,19 @@
parameters:
wallabag_user.twofactor.email.provider.class: Wallabag\UserBundle\Security\TwoFactor\Email\Helper
wallabag_user.twofactor.email.interactive_login_listener.class: Wallabag\UserBundle\Security\TwoFactor\Email\InteractiveLoginListener
wallabag_user.twofactor.email.request_listener.class: Wallabag\UserBundle\Security\TwoFactor\Email\RequestListener
services:
wallabag_user.twofactor.email.provider:
class: %wallabag_user.twofactor.email.provider.class%
arguments: ['@doctrine.orm.entity_manager', '@mailer']
wallabag_user.twofactor.email.interactive_login_listener:
class: %wallabag_user.twofactor.email.interactive_login_listener.class%
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onSecurityInteractiveLogin }
arguments: ['@wallabag_user.twofactor.email.provider']
wallabag_user.twofactor.email.request_listener:
class: %wallabag_user.twofactor.email.request_listener.class%
tags:
- { name: kernel.event_listener, event: kernel.request, method: onCoreRequest, priority: -1 }
arguments: ['@wallabag_user.twofactor.email.provider', '@security.context', '@templating', '@router']

View File

@ -0,0 +1,32 @@
{% extends "WallabagUserBundle::layout.html.twig" %}
{% block fos_user_content %}
<form class="form" action="" method="post">
<fieldset class="w500p center">
{% for flashMessage in app.session.flashbag.get("two_factor") %}
<p class="error">{{ flashMessage|trans }}</p>
{% endfor %}
<div class="row">
<label for="_auth_code">{{ "scheb_two_factor.auth_code"|trans }}</label>
<input id="_auth_code" type="text" autocomplete="off" name="_auth_code" />
</div>
{% if useTrustedOption %}
<div class="row">
<input id="_trusted" type="checkbox" name="_trusted" />
<label for="_trusted">{{ "scheb_two_factor.trusted"|trans }}</label>
</div>
{% endif %}
<div class="row mts txtcenter">
<a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Cancel{% endtrans %}</a>
<button type="submit" name="send">
{{ "scheb_two_factor.login"|trans }}
<i class="mdi-content-send right"></i>
</button>
</div>
</fieldset>
</form>
{% endblock %}

View File

@ -0,0 +1,33 @@
{% extends "WallabagUserBundle::layout.html.twig" %}
{% block fos_user_content %}
<form class="form" action="" method="post">
<div class="card-content">
<div class="row">
{% for flashMessage in app.session.flashbag.get("two_factor") %}
<p class="error">{{ flashMessage|trans }}</p>
{% endfor %}
<div class="input-field col s12">
<label for="_auth_code">{{ "scheb_two_factor.auth_code"|trans }}</label>
<input id="_auth_code" type="text" autocomplete="off" name="_auth_code" />
</div>
{% if useTrustedOption %}
<div class="input-field col s12">
<input id="_trusted" type="checkbox" name="_trusted" />
<label for="_trusted">{{ "scheb_two_factor.trusted"|trans }}</label>
</div>
{% endif %}
</div>
</div>
<div class="card-action center">
<a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn"><i class="material-icons left"></i> {% trans %}Cancel{% endtrans %}</a>
<button class="btn waves-effect waves-light" type="submit" name="send">
{{ "scheb_two_factor.login"|trans }}
<i class="mdi-content-send right"></i>
</button>
</div>
</form>
{% endblock %}