2016-08-21 3 views
0

Я использую couchbase lite в приложении Android с синхронизирующим шлюзом и couchbase на сервере, и он отлично работает.Как использовать сеанс couchbase lite для авторизации приложения nodejs?

Теперь я хочу сделать запрос node.js из приложения Android, и я хочу использовать тот же сеанс для авторизации пользователя в приложении node.js.

Возможно ли это? Могу ли я прочитать сеанс в узле и сопоставить его с couchbase?

ответ

0

Примечание: Вы не можете использовать Couchbase Node.js SDK на ведре, который используется синхронизация шлюза в противном случае он будет беспорядок с _sync метаданных и документы не будут синхронизироваться должным образом; но вы можете запрашивать документы, создавать сеансы и т. д., используя API-интерфейс REST Sync Gateway.

Вы можете обратиться к документации API REST Sync Gateway, чтобы получить список доступных конечных точек. И если вы не хотите развертывать свою собственную HTTP-оболочку, доступна JS-библиотека, которая работает на Node.js и в браузере: http://developer.couchbase.com/documentation/mobile/1.3/develop/guides/sync-gateway/rest-api-client/index.html.

+0

спасибо за ответ, но это не то, о чем я прошу. Я хочу подключиться с моего Android-устройства к node.js, скажем, просто для печати «hello world». но я хочу, чтобы только люди, у которых есть действующий сеанс шлюза синхронизации, печатают это. Таким образом, я могу повторно использовать сеанс SG, чтобы разрешить доступ к другим компонентам (например, elasticsearch), не создавая другого сеанса. надеюсь, что это более ясно. –

1

Вы спрашиваете о авторизации. Это связано с аутентификацией, но вы должны убедиться, что они различают эти два. Похоже на то, что вы хотите, чтобы аутентифицировать пользователя, а затем на вашем сайте разрешить доступ к узлу.

Сказав это, это зависит от типа аутентификации, которую вы используете для установления сеанса.

Основная аутентификация (при использовании непосредственно с Sync Gateway) просто передает имя пользователя и пароль, которые проверяются. Я думаю, что после этого вы получите сеансовый файл cookie. Было бы очень сложно использовать это для аутентификации для чего-либо еще (например, вам нужно будет самостоятельно изменить код Sync Gateway).

OpenID Connect, в потоке auth, может дать несколько способов сделать это.

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

Другим подходом было бы сделать двойную переадресацию. (Я думаю, что это сработает, но я не пробовал. Я не могу найти документацию о том, можно ли использовать код авторизации дважды). В потоке авторизации переадресация перейдите в приложение узла. Затем перенаправите приложение узла обратно в Sync Gateway. Оба приложения могут запрашивать токен ID.

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

В любом случае, Sync Gateway построен для запроса самого токена ID, поэтому для любого подхода потребуется запросить идентификатор ID дважды.

Вот несколько ссылок, на которые вы можете ознакомиться, чтобы исследовать это дальше самостоятельно.

http://connect2id.com/learn/openid-connect - Хорошая запись протокола OpenID Connect. https://developers.google.com/identity/protocols/CrossClientAuth - Документация поставщика удостоверения личности Google, которая разрешает совместное использование разрешений между мобильным приложением и веб-приложением. http://www.thread-safe.com/2012/01/problem-with-oauth-for-authentication.html - Сообщение, описывающее различие между аутентификацией и авторизацией и почему OpenID Connect (не OAuth) следует использовать при необходимости аутентификации.

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