powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Передача информации между устройствами, на которых стоит разрабатываемое приложение.
1 сообщений из 1, страница 1 из 1
Передача информации между устройствами, на которых стоит разрабатываемое приложение.
    #39664821
justcoder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

Разрабатываю приложение под Android на котлине. Скажу сразу, я джавист, а андроид это хобби в свободное время)).
Для простоты пусть будет список рецептов блюд (СРБ).

Приложение готово, но тут мне захотелось чтобы была возможность делиться рецептами.

т.е. чтобы я нажал на рецепт "Пирога", поделиться, у меня открылось окно с контактами (как в воцапе, вайбере) и я отправил человеку рецепт этого пирога.

Как по задумке я хочу это сделать (ранее никогда такого не делал, так что не судите строго):

1) Человек качает мое приложение
2) Ведет учет пирогов
3) В какой-то момент решил воспользоваться функцией шаринга рецептов
-Чтобы ему это сделать он должен авторизоваться, для этой цели я задействовал GoogleSignInApi.
Код: java
1.
2.
        GoogleSignInAccount acct = result.getSignInAccount();
	String authCode = acct.getServerAuthCode();


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

-Если этот код у человека есть, то я разрешаю ему выполнять запросы на свой сервер.

4) Свой сервер. Свой сервер это спринг бутовое приложение. С простенькой базой из двух-трех таблиц, которые держат в себе узеров, и сообщения с рецептами пирогов. У сервера есть рест апи контроллеры.

5) Пользователь, первый раз обращается к моему серверу, для того чтобы узнать а не прислал ли ему кто-нибудь рецепт пирога.
Если первый раз обращаюсь к своему серверу, то отсылаю ему гугловский код
Код: java
1.
String authCode



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


А теперь вопросы:
1) Самое главное, у меня не четкого понимания какую информацию о клиентах хранить в базе данных моего сервера.

Допустим, я храню номер телефона (ivan, это я)

1| Ivan| +7-911...| ivan@gmail.com
2| Petr |+7-904....| petr@gmail.com

Для того чтобы понять является ли Petr мои другом, есть два варианта:

Я отсылаю своему серверу, всю адресную книгу, и он матчит по номеру моих контактов, что petr в моих контактах есть, и что petr на моем сервер есть, а значит petr мой друг. И сервер слинкует petr c ivan
Признаться честно, не могу сказать является ли это нормальным решением отсылать все номера на сервер для постороения дерева друзей.

Мой сервер отсылает мне всех узеров, для постороения дерева друзей в локальной базе телефона. По мне так это никуда не годится, так как могут быть много пользователей на моем сервере.

Скажите пожалуйста, вариант один корректен, если нет то как такие вещи решаются и куда смотреть?

Также непонятно какой, номер сохранять? , допустим у меня две симки. Какой номер туда сохранять? Или добавить поле в таблицу phone2, трех симочных телефонов я не видел.

2) При беглом взгляде не нашел как провалидировать полученный от гугла acct.getServerAuthCode();, есть ли такая возможность валидации этого кода?

3) Где хранить токены? В локальной базе или preferences, чтобы допустим злоумышленник из телефона токен/код от гугла не вытащил?

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


Модератор: Кросспостинг http://www.sql.ru/forum/1296879/peredacha-informacii-mezhdu-ustroystvami-na-kotoryh-stoit-razrabatyvaemoe-prilozhenie
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Передача информации между устройствами, на которых стоит разрабатываемое приложение.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]