Я занимаюсь разработкой веб-приложения на Java. Я использую личный домен appspot (googleappengine). Я реализовал 3-х сторонний OAuth. И аутентификация работает нормально.
Проблема здесь при первом запуске приложения. Тем не менее, я вошел в мой Gmail, он не определяет имя пользователя. И он перенаправляет на страницу входа. После входа в систему я получаю данные, доступные в хранилище данных appspot. Но я не могу добавить эти данные на мою домашнюю страницу: (
Мой код похож на:
Сервлет Ajax Call of First Request
(home.html):
$(document).ready(function(){
jQuery.ajax({
type: "get",
url: "http://searcegadget2.appspot.com/RequestTokenServlet",
success: function(msg){
if(msg.search('tr') != -1){
id = msg.split('</tr>').length - 1;
$('#gadget').css('display', 'block');
$("tbody").append(msg);
difference();
}else if(msg.search('form') != -1){
$('#gadget').css('display', 'none');
document.write(msg);
}else if(msg.search('http') != -1){
$('#gadget').css('display', 'none');
document.location = msg;
}
},error: function(XMLHttpRequest, textStatus, errorThrown){
//alert(XMLHttpRequest.responseText);
}
});
});
Идентификатор моей таблицы: # гаджет и он имеет отображение блока блока. И, как вы можете видеть, я также установил параметр обратного вызова OAuth в home.html
RequestTokenServlet.java Код:
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
oauthParameters.setScope("https://spreadsheets.google.com/feeds/");
oauthParameters.setOAuthCallback("http://searcegadget2.appspot.com/home.html");
oauthParameters.setOAuthType(OAuthParameters.OAuthType.THREE_LEGGED_OAUTH);
UserService userService = UserServiceFactory.getUserService();
if (userService.isUserLoggedIn()) {
//fetch row
} else {
out.print(userService.createLoginURL(request.getRequestURI()));
}
Я имею в виду, appspot возвращает строку таблицы html и отображает только строку в любом браузере . Хотя я хочу, чтобы этот ряд был добавлен в таблицу домашней страницы, но я не могу.
Кроме того, это происходит только при первом входе в систему. Позже, когда я снова через URL своего приложения, он возвращает домашнюю страницу со строкой, добавленной в таблицу! Но проблема повторяется, когда я перезагружаю браузер!
Я хочу, чтобы при первом вызове отображался второй экран.
Как мне решить эту проблему? Есть ли другой способ проверить, входит ли пользователь в Java или нет?