Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- imports:
- - { resource: parameters.yml }
- - { resource: security.yml }
- - { resource: services.yml }
- - { resource: "@MedBundle/Resources/config/services.yml" }
- # Put parameters here that don't need to change on each machine where the app is deployed
- # https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
- parameters:
- locale: en
- framework:
- secret: "%secret%"
- csrf_protection: ~
- form: ~
- session:
- handler_id: ~
- fos_user:
- db_driver: orm
- firewall_name: main
- user_class: AppBundleEntityUser
- from_email:
- address: "test@test.com"
- sender_name: "Demo String"
- service:
- mailer: fos_user.mailer.twig_swift
- lexik_jwt_authentication:
- private_key_path: %jwt_private_key_path%
- public_key_path: %jwt_public_key_path%
- pass_phrase: %jwt_key_pass_phrase%
- token_ttl: %jwt_token_ttl%
- nelmio_cors:
- defaults:
- allow_origin: ["%cors_allow_origin%"]
- allow_methods: ["POST", "PUT", "GET", "DELETE", "OPTIONS"]
- allow_headers: ["content-type", "authorization"]
- expose_headers: ["link"]
- max_age: 3600
- paths:
- '^/': ~
- # Doctrine Configuration
- doctrine:
- dbal:
- driver: pdo_mysql
- host: '%database_host%'
- port: '%database_port%'
- dbname: '%database_name%'
- user: '%database_user%'
- password: '%database_password%'
- charset: UTF8
- # if using pdo_sqlite as your database driver:
- # 1. add the path in parameters.yml
- # e.g. database_path: '%kernel.root_dir%/data/data.db3'
- # 2. Uncomment database_path in parameters.yml.dist
- # 3. Uncomment next line:
- #path: '%database_path%'
- orm:
- auto_generate_proxy_classes: '%kernel.debug%'
- naming_strategy: doctrine.orm.naming_strategy.underscore
- auto_mapping: true
- # Swiftmailer Configuration
- swiftmailer:
- transport: '%mailer_transport%'
- host: '%mailer_host%'
- username: '%mailer_user%'
- password: '%mailer_password%'
- spool: { type: memory }
- fos_rest:
- view:
- view_response_listener: 'force'
- formats:
- json: true
- format_listener:
- rules:
- - { path: '^/api', priorities: ['json'], fallback_format: json, prefer_extension: true }
- - { path: '^/', stop: true }
- security:
- encoders:
- FOSUserBundleModelUserInterface: bcrypt
- role_hierarchy:
- ROLE_ADMIN: ROLE_USER
- ROLE_SUPER_ADMIN: ROLE_ADMIN
- providers:
- fos_userbundle:
- id: fos_user.user_provider.username
- firewalls:
- dev:
- pattern: ^/(_(profiler|wdt)|css|images|js)/
- security: false
- login:
- pattern: ^/api/login
- stateless: true
- anonymous: true
- form_login:
- check_path: /api/login_check
- success_handler: lexik_jwt_authentication.handler.authentication_success
- failure_handler: lexik_jwt_authentication.handler.authentication_failure
- require_previous_session: false
- api:
- pattern: ^/api
- stateless: true
- lexik_jwt:
- authorization_header:
- enabled: true
- prefix: Bearer
- query_parameter:
- enabled: true
- name: bearer
- throw_exceptions: false
- create_entry_point: true
- main:
- pattern: ^/
- provider: fos_userbundle
- stateless: true
- form_login:
- check_path: /login_check
- username_parameter: _username
- password_parameter: _password
- success_handler: lexik_jwt_authentication.handler.authentication_success
- failure_handler: lexik_jwt_authentication.handler.authentication_failure
- require_previous_session: false
- logout: true
- anonymous: true
- access_control:
- - { path: ^/api/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- - { path: ^/api/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- - { path: ^/api, role: IS_AUTHENTICATED_FULLY }
- var app = angular.module("myApp", ["ngRoute","ngStorage"]);
- app.config(['$routeProvider','$httpProvider', function($routeProvider,$httpProvider) {
- $routeProvider
- .when("/login", {
- templateUrl: Routing.generate('login',
- {template:"default/login.html.twig"}),
- controller: 'loginctrl',
- })
- .when("/register", {
- templateUrl: Routing.generate('register',
- {template:"default/registere.html.twig"}),
- controller: 'httpgetctrl',
- })
- .when("/affiche", {
- templateUrl: Routing.generate('get',
- {template:"default/affiche.html.twig"}),
- controller: 'httpgetctrl',
- });
- $httpProvider.interceptors.push('authInterceptor');
- }]);
- app.controller("httpgetctrl", function ($scope, $http) {
- $scope.SendData = function () {
- // use $.param jQuery function to serialize data from JSON
- var data = $.param({
- username: $scope.username,
- email: $scope.email,
- pass: $scope.password,
- confir: $scope.confirmationpass
- });
- var config = {
- headers : {
- 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
- }
- }
- $http.post(Routing.generate('register'), data, config)
- .then(function (response) {
- console.log("success");
- })
- .catch(function() {
- console.log("error");
- })
- };
- });
- app.controller("loginctrl", function ($scope, $http,$localStorage) {
- $scope.login = function () {
- // use $.param jQuery function to serialize data from JSON
- var data = $.param({
- username: $scope.user,
- password: $scope.pass
- });
- var config = {
- headers : {
- 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
- }
- }
- $http.post(Routing.generate('login'), data, config)
- .then(function (response) {
- console.log("success login");
- localStorage.token = response.data['token'] ;
- console.log(localStorage.token);
- })
- .catch(function() {
- console.log("error login");
- })
- };
- });
- app.factory('authInterceptor', function($rootScope, $q, $window) {
- return {
- request: function (config) {
- config.headers = config.headers || {};
- if (localStorage.token) {
- //config.headers.Authorization = 'Bearer ' + localStorage.token;
- config.headers['x-access-token'] = localStorage.token;
- console.log('done');
- }
- return config;
- },
- response: function (response) {
- if (response.status === 401) {
- // if 401 unauthenticated
- console.log("error 401");
- }
- return response || $q.when(response);
- }
- };
- // call the factory ...
- })
- {% extends 'base.html.twig' %}
- {% block title %} Acceuil {% endblock %}
- {% block stylesheets %}<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/cerulean/bootstrap.min.css">
- <style>
- a {
- text-decoration:none;
- color: #e74c3c;
- margin-right: 25px;
- }
- </style>
- {% endblock %}
- {% block body %}
- <div class="container" ng-app="myApp">
- <a href="#/!">Acceuil</a>
- <a href="#!login">Login</a>
- <a href="#!register">Register</a>
- <a href="#!affiche">Affiche</a>
- <br><br>
- <div ng-view></div>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script>
- <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular-route.js"></script>
- <script src="angularJwt.js"></script>
- <script type="text/javascript" src="https://cdn.jsdelivr.net/ngstorage/0.3.6/ngStorage.min.js"></script>
- <script src="https://cdnjs.cloudflare.com/ajax/libs/todc-bootstrap/3.3.7-3.3.13/js/bootstrap.min.js"></script>
- <script type="text/javascript" src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
- <script type="text/javascript" src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
- <script type="text/javascript" src="{{ asset('bundles/fosjsrouting/js/app.js') }}"></script>
- <script>
- </script>
- </div>
- {% endblock %}
- <?php
- namespace MedBundleController;
- use SensioBundleFrameworkExtraBundleConfigurationRoute;
- use SymfonyComponentHttpFoundationRequest;
- use SymfonyBundleFrameworkBundleControllerController;
- use FOSRestBundleControllerAnnotationsRouteResource;
- use SymfonyComponentHttpFoundationJsonResponse;
- use FOSRestBundleViewViewHandler;
- use FOSRestBundleViewView;
- use MedBundleEntityMed;
- use SymfonyComponentSecurityCoreUserUserInterface;
- use SymfonyComponentHttpFoundationResponse;
- use AppBundleEventListenerJWTCreatedlistener;
- Class ApiController extends Controller {
- public function getAction() {
- $em = $this->getDoctrine()->getManager();
- $test = $em->getRepository('MedBundle:Med')->findAll();
- //$viewHandler = $this->get('fos_rest.view_handler');
- // Création d'une vue FOSRestBundle
- //$view = View::create($test);
- //$view->setFormat('json');
- // Gestion de la réponse
- //return $viewHandler->handle($view);
- return array('test'=>$test);
- }
- public function loginAction() {
- $em = $this->getDoctrine()->getManager();
- $request = $this->getRequest();
- $test = null; $token = null; $res = 'null';
- if ($request->getMethod() == 'POST') {
- $username = $request->request->get('username');
- $password = $request->request->get('password');
- $test = $em->getRepository('MedBundle:Med')->findOneBy(array('username' => $username));
- if (!($test)) { $res = "error"; } else{
- $salt= $test->getSalt();
- $pass = crypt($password,$salt);
- if ( $pass !== $test->getPassword() ) { $res='error password'; } else {
- $res='success';
- $token = $this->get('lexik_jwt_authentication.jwt_manager')->create($test);
- $test->setToken($token);
- $em->persist($test);
- $em->flush();
- } }
- //return new Response($res);
- $test = [];
- $test['token'] = $token;
- $test['res'] = $res;
- return new JsonResponse($test);
- }
- return $this->render('default/login.html.twig',array('test' => json_encode($test), 'token' => $token,'res' => json_encode($res)));
- }
- public function logoutAction() {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement