У меня есть сервер Java Servlet с хранилищем данных, подключенным к моему приложению; Я пытаюсь внедрить систему входа в систему с использованием шаблона LoginActivity для Android Studio, используя адрес электронной почты пользователя и пароль (а не PlusBaseActivity, обрабатывающий вход в учетную запись Google), но я не знаю, как исходить отсюда:Пользовательский логин пользователя в AppEngine
вы говорите, что пользователь вошел в систему? и как я могу так настойчиво использовать свой хранилище данных? Я прочитал здесь: How to login User using UserService on AppEngine Java, что мне просто нужно вызвать метод resp.sendRedirect(userService.createLoginURL(req.getRequestURI()))
, и я сделал так:
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
int size = checkDatastore(); // 0 if empty, > 0 if not empty
if(size==0){
populateDatastore();
}
String asyncMessage = req.getParameter("order");
if(asyncMessage.equals("login")){
mail = req.getParameter("email");
psw = req.getParameter("password");
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
String message="";
resp.setContentType("text/plain");
PrintWriter out = resp.getWriter();
if(user == null) {
//Sends a temporary redirect response to the client using the
// specified redirect location URL and clears the buffer.
String uri = userService.createLoginURL(req.getRequestURI());
resp.sendRedirect(uri);
User user1 = userService.getCurrentUser();
message="No one is logged in!\n" + "Sent from App Engine at " + new Date();
out.println(message);
out.flush();
}if(user !=null) {
// login(user);
message = "Hello, " + user.getEmail() +
", "+user.getNickname()+"!" + "\nSent from App Engine at "+ new Date();
out.println(message);
out.flush();
}
}
}
но метод sendRedirect()
только дает мне URI. Зачем?
Кроме того, User user = userService.getCurrentUser()
всегда возвращает null
. Как так?