Авторизация На Сайте Через Api Социальных Сетей С Интеграцией В Spring Security

Авторизацию (регистрацию) и идентификацию пользователей на разрабатываемом портале я решил реализовать с помощью инструмента разработчика социальных сетей (Social Networks REST API) — тема далеко не инновационная, активно используется и очень проста в использовании.

Не буду перечислять все удобства и преимущества использования такого функционала на своих сайтах, но отмечу, что я очень доволен тем, что не запоминаю пароли к каждому сайту (даже если у меня есть парочка стандартных), и не участвую в утомительные регистрации с отправкой писем и подтверждений, а также избежать необходимости лишний раз сталкиваться с капчами.

Функционал этих API довольно примитивен, технология проста, а реализация достаточно унифицирована и проста.

Но при знакомстве с технологией документации и примеров API конкретной социальной сети недостаточно.

Кроме того, как написано в теме, используемый язык — Java, что автоматически уменьшает количество полезной информации.

Да и описаний в рунете не так много.

Можно пойти по пути наименьшего сопротивления и использовать сторонние RESTful продукты, но а) это не дает полного понимания процесса; б) снижает переключаемость требуемого процесса; в) зачастую исследование стороннего продукта может оказаться сложнее, чем разработка собственной реализации.

Хотя простота использования такого стороннего продукта может существенно облегчить разработку.

Однако лично я в этом обзоре сделал акцент на максимальном контроле над всеми процессами, даже в ущерб универсальности (мы «прикручиваем» конкретный функционал к конкретному сайту, и лишь немногие делают его универсальным продуктом «на все случаи жизни»).

»).

Кроме того, меня интересует не только реализация авторизации пользователей, но и реализация системы безопасности проекта, предоставляемой фреймворком Spring Security 3. Используемый набор платформ и инструментов: Пружинное ядро 3.1 , Весенний MVC 3.1 , Весенняя безопасность 3.1 , Спящий режим 4.1 .

Проект внедрения зарубежный, поэтому набор реализуемых соцсетей стандартный «для них» — Фейсбук , Твиттер , Гугл+ , LinkedIn .

Хочу отметить, что в пакете Spring есть готовый проект «из коробки» — Весенняя социальная программа (текущая версия 1.0.2), которая идеально инкапсулирована в среду продукта Spring и предназначена для использования с другими продуктами Spring. Наверняка это было бы профессиональным решением, но наша задача — все контролировать и сделать процесс максимально прозрачным для понимания.

Да и с самой Social не всё так гладко.



1. Модель.

Я пошел по несколько рискованному и противоречивому пути, объединив пользователя и ПОДЖО , И Детали пользователя , И Сущность .

С точки зрения подхода к программированию это неправильно, но а) это очень удобно; и б) сохраняет создание нескольких слоев, избавляя нас от необходимости создавать отдельные POJO+Entity, отдельные UserDetails и отдельный DTO, что фактически дублирует контент. Предлагаемая схема построения модели следующая:

Авторизация на сайте через API социальных сетей с интеграцией в Spring Security

Я разделил два слоя (AuthUser и DataUser), чтобы не мешать логике авторизации и бизнес-логике проекта: посетитель, администратор и кто еще авторизуется точно так же, но у них есть свой набор свойств.

.

Например, в моем проекте есть Соискатели и Работодатели, они заходят на сайт одинаково, но имеют совершенно другую структуру модели.

Что касается разделения структуры внутри слоев, то это очевидно - набор полей, получаемый от Фейсбука, Твиттера и т.п.

, а особенно при стандартной авторизации, настолько разный, что создавать одну ужасно расширенную структуру для всего просто глупо и от с точки зрения построения базы данных - избыточно.

Что касается масштабируемости, то при добавлении нового поставщика услуг работать с такой структурой будет крайне неудобно.

Списки некоторых перечисленных объектов, а также используемых классов перечислений.

Авторизация.

java:

   

@ Entity

Теги: #Социальные сети #java #аутентификация #spring mvc #spring Security #Chulan
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.