2015-05-23 5 views
3

Я создаю мобильное приложение для Android и iOS с помощью Cordova/PhoneGap и использую базу данных IBM Cloudant для хранения. Я использую javascript-библиотеку PouchDB для доступа к базе данных Cloudant. В настоящее время у меня есть этот код для доступа к нему ...Как я могу безопасно подключиться к Cloudant с помощью PouchDB?

db = new PouchDB('https://[myaccount].cloudant.com/[mydb]', { 
    auth: { 
     username: 'myusername', 
     password: 'mypassword' 
    } 
}); 

Я знаю, что это очень небезопасно, и мне интересно, если есть более безопасный способ подключения к базе данных из приложения?

+0

В чем вы нуждаетесь? Вы беспокоитесь о том, чтобы поделиться своим именем пользователя и паролем с пользователями вашего приложения? –

+0

Не обязательно делиться им с ними, потому что они, очевидно, должны будут иметь доступ к данным .. но тем более, что это касается только того факта, что мои учетные данные жестко закодированы в программе. Я знаю, что это будет сложно, но если кто-то захочет, они могут декомпилировать мое приложение и получить доступ к моему исходному коду ... а также мою учетную информацию. – David

ответ

1

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

  1. Код телефон связывается со службой приложения запрашивает регистрацию пользователя
  2. Услуга делает вызов Cloudant to create an API key, который будет возвращен к коду телефона
  3. Телефонная трубка код сохраняет ключ API «имя пользователя» и «пароль» на устройстве. Эти учетные данные затем используются в объекте auth: { username: 'myusername', password: 'mypassword' }.
+0

Вы, кажется, говорите, вообще говоря, о том же решении. Это отличная идея! Спасибо большое вам обоим! – David

1

Вы правы, что учетные данные Cloudant никогда не должны быть жестко закодированы в вашем клиентском приложении.

Один шаблон дизайна является использование «одна база данных для каждого пользователя» подход:

  • проверки подлинности пользователя с веб-приложением твоего, который имеет Cloudant учетные данные администратора
  • приложение создает базу данных для проверку подлинности пользователя и создает Cloudant API Key с _reader & _writer доступа (https://docs.cloudant.com/api.html#authorization)
  • приложение сообщает об этом учетные данные с клиента (где они могут быть сохранены в «местном» PouchDB документа, или просто хранится в памяти, если вы тусклый t ваши пользователи должны аутентифицироваться каждый раз)
+0

Голосование за ваш ответ за дополнительную информацию о разрешениях «_reader» и «_writer» и базе данных на каждый шаблон пользователя :) –

Смежные вопросы