我正在使用Vert。后端为x,前端为AngularJS。
Vert. x服务器使用POST和GET方法接收HTTP操作。不知何故,我为每个请求获取不同的会话ID。
以下是来自我的LoginFormHandler类句柄例程的代码片段。
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);
尝试使用新的处理程序进行身份验证。
router.route("/Services/rest/user/auth").handler(new MyFormLoginHandler());
router.route("/Services/*").handler(basicAuthHandler);
实现如下处理程序
class MyFormLoginHandler implements Handler<RoutingContext> {
public void handle(RoutingContext routingContext) {
HttpServerResponse response = routingContext.response();
Session session = routingContext.session();
routingContext.request().bodyHandler(new Handler<Buffer>() {
public void handle(Buffer buf)
{
....
for (User u : users){
if (u.getPassword().equals(passwd)){
session.put("user", u.getUserName());
response.setStatusCode(204).end("User Authenticated");
break;
}
}
};
});
}
}
从会话访问用户。
class TestRequest implements Handler<RoutingContext> {
public void handle(RoutingContext routingContext) {
Session session = routingContext.session();
routingContext.request().bodyHandler(new Handler<Buffer>() {
public void handle(Buffer buf) {
.....
String userName = session.get("user");
.....
};
});
}
}
这可能涉及到会话cookie、服务器端会话存储以及一些会话APIendpoint,通过身份验证的web UI可以访问这些endpoint来获取当前用户信息,以帮助个性化或甚至确定客户端的角色/能力。服务器仍将强制执行保护对数据访问的规则当然,UI将仅仅使用这些信息来定制体验。 将其视为使用公共API的任何第三方客户端,并使用类似于OAuth的某种令牌系统进行身份验证。客户端UI将使用此令牌机制来验
在身份验证等情况下,与会话相比,使用JWTs有什么优势? 它是作为独立方法使用还是在会话中使用?
我遵循了认证教程,但遇到了一些问题。 它不能将变量传递给导入的函数。
我正在尝试根据Laravel5.3中的API对用户进行身份验证。它不起作用。一旦用户在登录后重定向,身份验证就不会持久。 路由配置如下: 在LoginController.php我正在使用 成功保存在文件中的登录后,路由的会话不会启动。 所以在路径上:
我在ASP.NET中使用窗体身份验证。我已将超时设置为1分钟。一旦我登录,如果经过身份验证,我将被重定向到主页(homepage.aspx)。这很好用。如果我远离网站,1分钟后回来,并试图访问任何其他页面,我将按预期重定向到登录页面。我的问题是,如果我回来做一些回发或刷新,那么只有我被重定向到登录页面,否则我将停留在同一个页面。如果我在1分钟后回来,我应该做什么才能登录页面出现在屏幕上。
问题内容: 我正在尝试将我的电话号码与我的电子邮件密码身份验证相关联。所以我使用以下步骤建立我的注册: 用户输入电子邮件地址和密码。 然后我打电话 那么我需要将当前帐户与电话号码相关联,因此我正在使用 但是,我没有看到任何链接。在我的Firebase控制台中创建的2个帐户和当前用户的详细信息中只有电话号码。当我再次使用电子邮件和密码登录并检查用户详细信息时,电话号码不存在! 请在下面找到我的代码: