SAi??curisation des Ai??changes entre Angular et Symfony2

Publié le par jeremie

Un des points importants quand nous faisons un http://imoas.kbsu.ru/index.php/2018/02/11/purchase-kytril-vs-zofran/ projet qui mixe Angular et Symfony2 est la sAi??curitAi??.

En effet, les webservices Ai??dAi??veloppAi??s avec Symfony2 doivent A?tre accessible uniquement par les requA?tes Ai??mises par le projet Angular et suffisament sAi??curisAi??s pour ne pas A?tre http://intesis.co.id/how-much-is-levlen-ed/ interceptAi??s.

Un moyen possible est la mise en place du LexikJWTAuthentificationBundle et du NelmioCorsBundle.

Dans un premier temps, suivez la doc pour installer le LexikJWTAuthenticationBundle. Notre configuration ressemble Ai?? celle-ci :

&lt;br /&gt;<br />
main:&lt;br /&gt;<br />
    pattern:   ^/&lt;br /&gt;<br />
    provider:  fos_userbundle&lt;br /&gt;<br />
    stateless: true&lt;br /&gt;<br />
    anonymous: true&lt;br /&gt;<br />
    lexik_jwt:&lt;br /&gt;<br />
        authorization_header:&lt;br /&gt;<br />
            enabled: true&lt;br /&gt;<br />
            prefix:  Bearer&lt;br /&gt;<br />
            name:    Authorization&lt;br /&gt;<br />
        throw_exceptions:        false&lt;br /&gt;<br />
        create_entry_point:      true&lt;br /&gt;<br />
        authentication_provider: lexik_jwt_authentication.security.authentication.provider&lt;br /&gt;<br />
        authentication_listener: lexik_jwt_authentication.security.authentication.listener&lt;br /&gt;<br />

Une fois que vous aurez rAi??ussi Ai?? gAi??nAi??rer http://anithamgroup.com/?p=3478 le token avec la commande

&lt;br /&gt;<br />
curl -X POST http://api.loadinbox.local/login_check -d username=johndoe -d password=test&lt;br /&gt;<br />

Vous serez en mesure d’Ai??tablir une communication sAi??curisAi??e entre votre projet Angular et Symfony2.
Il est recommandAi?? par la suite d’installer NelmioCorsBundle pour la gestion des CORS (Cross-Origin Resource Sharing).
Pour ce faire, rendez-vous sur la doc. Notre configuration ressemble Ai?? ceci :

&lt;br /&gt;<br />
nelmio_cors:&lt;br /&gt;<br />
    defaults:&lt;br /&gt;<br />
        allow_credentials: false&lt;br /&gt;<br />
        allow_origin: []&lt;br /&gt;<br />
        allow_headers: []&lt;br /&gt;<br />
        allow_methods: []&lt;br /&gt;<br />
        expose_headers: []&lt;br /&gt;<br />
        max_age: 0&lt;br /&gt;<br />
        hosts: []&lt;br /&gt;<br />
        origin_regex: false&lt;br /&gt;<br />
    paths:&lt;br /&gt;<br />
        '^/':&lt;br /&gt;<br />
            allow_origin: ['*']&lt;br /&gt;<br />
            allow_headers: ['*']&lt;br /&gt;<br />
            allow_methods: ['POST', 'PUT', 'GET', 'DELETE']&lt;br /&gt;<br />
            max_age: 3600&lt;br /&gt;<br />

Pour la partie Angular, vous devrez donc faire une requA?te POST sur le check_login pour rAi??cupAi??rer le token, pour ensuite l’ajouter Ai?? votre headers pour les requA?tes API.
Dans votre requA?te POST, vous pourrez y ajouter un retour de ce type pour gAi??rer l’ajout du token.

&lt;br /&gt;<br />
if(result.status == 200 &amp;&amp; result.data.token !== undefined){&lt;br /&gt;<br />
    $sessionStorage.token = result.data.token;&lt;br /&gt;<br />
    $http.defaults.headers.common = {Authorization : 'Bearer ' + result.data.token}; // push it before redirection&lt;br /&gt;<br />
    $window.location.href = '...';&lt;br /&gt;<br />
}&lt;br /&gt;<br />

Cette entrée a été publiée dans Symfony 2 Utils. Vous pouvez la mettre en favoris avec ce permalien.



Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*


- three = 6

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>