Я пытаюсь включить граф Google Analytics в веб-приложение, чтобы показать статистику пользователей их приложений. Это локальный url http://192.168.100.10:9000/
я login на панели инструментов (веб-приложение). У меня есть кнопка входа в Google. До сих пор здесь я поддерживаю сеанс пользователя после того, как он войдет в систему.
И когда пользователь нажимает на кнопку входа в систему. Он вызывает метод обратного вызова. Когда обратный вызов запускается в первый раз, тогда он поддерживает сеанс. Я имею в виду, что session("user")
здесь не является нулевым.
public Result callback() {
JsonNode jsonNode = Json.parse(session("user"));
UserDTO userDTO = Json.fromJson(jsonNode, UserDTO.class);
if (userDTO.getRole().getType().equals(RoleDTO.EnRoleType.ADMIN.toString()))
return redirect(com.softoven.ultron.controllers.routes.AccountCTRL.index());
if (request().queryString().get("code") != null && request().queryString().get("state") != null && request().queryString().get("state")[0].equals(session("state"))) { // Check if he/she is authorized
session().remove("state");
Analytics analytics = setAnalytics(userDTO, request());
session("analytics", Json.toJson(analytics).toString());
return redirect(com.softoven.ultron.controllers.routes.AccountCTRL.index());
} else { // Create Authorization URL
String url = helper.buildLoginUrl();
session("state", helper.getStateToken());
return redirect(url);
}
}
Это URL-адрес, когда пользователь нажимает кнопку входа
https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=784122128025-cvq0fn1e23f24dia4soavsd9v1ovesub.apps.googleusercontent.com&redirect_uri=http://localhost:9000/callback&response_type=code&scope=https://www.googleapis.com/auth/analytics.readonly%20https://www.googleapis.com/auth/analytics.manage.users%20https://www.googleapis.com/auth/analytics%20https://www.googleapis.com/auth/analytics.edit%20https://www.googleapis.com/auth/analytics.manage.users.readonly%20https://www.googleapis.com/auth/analytics.provision&state=google-35808300
И когда пользователь нажимает кнопку allow
на странице разрешений входа google, тогда управление возвращается к callback()
но на этот раз session("user")
имеет значение null. который не должен быть пустым, потому что я установил сеанс, когда пользователь вошел в систему. Я не знаю, почему это происходит и как это исправить.
И это конечный URL-адрес после перенаправления с страницы разрешения Google. http://localhost:9000/callback?state=google-35808300&code=4/g-FkJ3GGS01jbeXLHK0o95ks-K-drGK7bxgzvi3cELU#