2016-12-30 1 views
0

Mein Vertx Server ist in Java und wenn ich eine Sitzung mit Js erstellen möchte, hat mein Browser kein Cookie mit dem Schlüssel. Aber wenn ich eine Sitzung direkt mit der URL erstelle, hat mein Browser ein Cookie. Mein Server:vertex Sitzung keine Cookies in meinem Browser erstellen

router.route().handler(CookieHandler.create()); 
    router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx)); 
    router.get("/log/:name/:password").handler(this::verifId); 

public void verifId(RoutingContext routingContext) { 
     HttpServerRequest request = routingContext.request(); 
     HttpServerResponse response = routingContext.response(); 
     try { 
      Session s = routingContext.session(); 
      DataBase.connect(); 
      String name = request.getParam("name"); 
      String password = request.getParam("password"); 
      Boolean returnValue = DataBase.exist(name, password); 
      DataBase.disconnect(); 
      if (returnValue) { 
       s.put("user", request.getParam("name")); 
       System.out.println(s.id()); 
       response.end(Json.encodePrettily(s.id().toString())); 
      } else { 
       s.destroy(); 
       response.end("null"); 
      } 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 

And My Code Js:

function tryToLogin(login, password){ 

    var urlBuilder = 'https://localhost:8090/log/' + login + '/' + password; 

    $.ajax({ 
     url : urlBuilder, 
     type: 'get', 
     dataType: 'json', 

     success : function(code_json, statut){ 

      console.log(" il a repondu " + code_json); 
     } 

    }); 
} 

Antwort

0

Der einzige Cookie Vertx auf diese Weise unterscheidet, ist "VertX-web.session". In Ihrem Beispiel werden keine weiteren Cookies gesetzt.

Um zu überprüfen, dass das Cookie gültig ist, dass Sie den folgenden Code verwenden:

Vertx vertx = Vertx.vertx(); 

    Router router = Router.router(vertx); 
    router.route().handler(CookieHandler.create()); 
    router.route().handler(SessionHandler.create(LocalSessionStore.create(vertx))); 

    router.get("/login").handler((r) -> { 
     System.out.println("Got request"); 
     System.out.println("Session cookie " + r.getCookie("vertx-web.session").getValue()); 
     r.response().end("OK"); 
    }); 
    router.route("/*").handler(StaticHandler.create()); 

    vertx.createHttpServer().requestHandler(router::accept).listen(8888); 

und JS-Client:

var urlBuilder = '/login'; 

    $.ajax({ 
     url : urlBuilder, 
     type: 'GET', 

     success : function(code_json, statut){ 

      console.log("got" + code_json); 
     } 

    }); 

Sie erhalten:

Session cookie <UUID> 

Und:

gotOK 

In JavaScript-Konsole

Verwandte Themen