|
Передача информации между устройствами, на которых стоит разрабатываемое приложение.
|
|||
---|---|---|---|
#18+
Добрый день, Разрабатываю приложение под Android на котлине. Скажу сразу, я джавист, а андроид это хобби в свободное время)). Для простоты пусть будет список рецептов блюд (СРБ). Приложение готово, но тут мне захотелось чтобы была возможность делиться рецептами. т.е. чтобы я нажал на рецепт "Пирога", поделиться, у меня открылось окно с контактами (как в воцапе, вайбере) и я отправил человеку рецепт этого пирога. Как по задумке я хочу это сделать (ранее никогда такого не делал, так что не судите строго): 1) Человек качает мое приложение 2) Ведет учет пирогов 3) В какой-то момент решил воспользоваться функцией шаринга рецептов -Чтобы ему это сделать он должен авторизоваться, для этой цели я задействовал GoogleSignInApi. Код: java 1. 2.
-Сохраняем где-то этот код, мне гугловские сервисы не нужны, и нет дальше смысла запрашивать у гугла какой-то токен, мне лишь важно знать что данный человек получил апрув от гугла. -Если этот код у человека есть, то я разрешаю ему выполнять запросы на свой сервер. 4) Свой сервер. Свой сервер это спринг бутовое приложение. С простенькой базой из двух-трех таблиц, которые держат в себе узеров, и сообщения с рецептами пирогов. У сервера есть рест апи контроллеры. 5) Пользователь, первый раз обращается к моему серверу, для того чтобы узнать а не прислал ли ему кто-нибудь рецепт пирога. Если первый раз обращаюсь к своему серверу, то отсылаю ему гугловский код Код: java 1.
Который получил раньше, по-хорошему, мой сервер должен его как-то провалидировать, далее на моем сервере стоит 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2018, 15:30 |
|
|
start [/forum/topic.php?fid=13&tid=1330880]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
28ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 144ms |
0 / 0 |