private void blynkLogin(ChannelHandlerContext ctx, int msgId, String email, String pass, Version version, String appName) { var user = holder.userDao.getByName(email, appName); if (user == null) { log.warn("User '{}' not registered. {}", email, ctx.channel().remoteAddress()); ctx.writeAndFlush(notRegistered(msgId), ctx.voidPromise()); return; } if (user.pass == null) { log.warn("Facebook user '{}' tries to login with pass. {}", email, ctx.channel().remoteAddress()); ctx.writeAndFlush(facebookUserLoginWithPass(msgId), ctx.voidPromise()); return; } if (!user.pass.equals(pass)) { log.warn("User '{}' credentials are wrong. {}", email, ctx.channel().remoteAddress()); ctx.writeAndFlush(notAuthenticated(msgId), ctx.voidPromise()); return; } login(ctx, msgId, user, version); }
@Override public Response onCompleted(Response response) { if (response.getStatusCode() != 200) { String errMessage = response.getResponseBody(); if (errMessage != null && errMessage.contains("expired")) { log.warn("Facebook token expired for user {}.", email); } else { log.warn("Error getting facebook token for user {}. Reason : {}", email, errMessage); } ctx.writeAndFlush(notAllowed(messageId), ctx.voidPromise()); return response; } try { String responseBody = response.getResponseBody(); FacebookTokenResponse facebookTokenResponse = JsonParser.parseFacebookTokenResponse(responseBody); if (email.equalsIgnoreCase(facebookTokenResponse.email)) { User user = holder.userDao.getByName(email, AppNameUtil.BLYNK); if (user == null) { user = holder.userDao.addFacebookUser(email, AppNameUtil.BLYNK); } login(ctx, messageId, user, version); } } catch (Exception e) { log.error("Error during facebook response parsing for user {}. Reason : {}", email, response.getResponseBody()); ctx.writeAndFlush(notAllowed(messageId), ctx.voidPromise()); } return response; }