【发布时间】:2015-08-14 06:04:34
【问题描述】:
我在后端使用 Vert.x,在前端使用 AngularJS。
Vert.x 服务器使用 POST 和 GET 方法接收 HTTP 操作。不知何故,我为每个请求获得了不同的会话 ID。
以下是我的 LoginFormHandler 类句柄例程中的代码 sn-p。
authProvider.authenticate(authInfo, res -> {
if (res.succeeded()) {
Session session = context.session();
io.vertx.ext.auth.User user = res.result();
session.put("user", user);
req.response().setStatusCode(204).end("user Login success");
//...
}
//...
}
我将用户对象放在当前会话中。然后我移动到新页面并向 Vert.x 服务器发送一个 POST 请求。在那个 POST 处理程序中,我正在尝试获取会话对象:
Session session = context.session();
io.vertx.ext.auth.User user = session.get("user");
我没有得到用户。此外,当我打印会话 ID 时,两个会话的值都不同。
我在线程的启动例程中有以下代码。
router.route().handler(CookieHandler.create());
router.route().handler(
SessionHandler.create(LocalSessionStore.create(vertx)));
AuthProvider ap = new MyAuthProvier();
router.route().handler(UserSessionHandler.create(ap));
AuthHandler basicAuthHandler = BasicAuthHandler.create(ap);
router.route("/Services/rest/user/auth").handler(MyFormLoginHandler.create(ap));
router.route("/Services/*").handler(basicAuthHandler);
【问题讨论】:
-
“我没有得到用户。”到底是什么意思。你得到一个
null对象吗?
标签: session session-management vert.x