2016-12-30 13 views
0

私のvertxサーバはJavaであり、Jsを使ってセッションを作成したいとき、私のブラウザはそのキーを持つクッキーを持っていません。しかし、URLで直接セッションを作成すると、ブラウザにCookieがあります。 マイサーバー:vertxセッションは私のブラウザにクッキーを作成しません

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(); 
     } 
    } 

そして、私の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); 
     } 

    }); 
} 

答えて

0

のみクッキーVERTXがそのように設定がある "VERTX-web.session"。あなたの例では他のクッキーを設定していません。

クッキーを使用すると、次のコードを使用することができ有効であることを確認するには:

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); 

とJSクライアントを:

var urlBuilder = '/login'; 

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

     success : function(code_json, statut){ 

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

    }); 

あなたが得られます。

Session cookie <UUID> 

と:

gotOK 

JavaScriptコンソール

関連する問題