У меня есть веб-приложение, которое должно разрешать пользователям, использующим разные веб-клиенты (браузер, собственное мобильное приложение и т. Д.), Регистрироваться. После входа они могут получить доступ ограниченный контент или их собственный контент (например, записи, которые они создают и т. д.).
Что я сделал до сих пор: я создал веб-сервис jax-rs rest (я размещаю свое приложение на Glassfish), который предоставляет следующие методы:
Вот где меня это сбивает с толку.
Допустим, у меня есть другой метод, getUserEntries, который должен возвращать все записи, сделанные пользователем. Чтобы было понятнее, будет таблица Entry со следующими полями: entryId, userId, text.
Какой здесь подход лучше всего?
Что мне теперь делать: я делаю запрос на получение и передаю токен следующим образом:
localhost: 8080 / myApp / getUserEntries? Token = erf34c34
После этого, если токен действителен, я получаю userID из таблицы logedusers и на основе этого userId получить все записи и вернуть их как json.
Примерно так:
@GET
@Path("getUserEntries")
@Produces(MediaType.APPLICATION_JSON)
public Response getUserEntries(@QueryParam("token") String token) {
String userId=getUserIdFromToken(token);
if (userId == null){
return Response.status(Response.Status.UNAUTHORIZED).build();
} else {
//get some data associated with that userId, put it in the response object and send it back
return Response.ok().entity(response).build();
}
}
Однако что произойдет, если у меня будет больше методов, которые предоставляют данные, если они вызываются допустимым пользователем?
Мне пришлось бы выполнять эту проверку в начале каждого метода.
Я хочу сделать этот процесс авторизации прозрачным
Итак, здесь два основных вопроса:
Спасибо