2016-01-19 4 views
3

I want to implement the server authentication method described here in paragraph 1.Аутентификация серверов с использованием Firebase app secret

  1. Использование Firebase приложение секрет: Все методы аутентификации могут принять Firebase приложение секрет вместо маркера JWT. Это предоставит серверу полный доступ для чтения и записи ко всей базе данных Firebase. Этот доступ никогда не истекает, если он не будет отменен с помощью панели приложений.

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

Итак, как бы выглядели мои правила безопасности?

Вот что у меня есть.

безопасности rules.json
{ 
    "rules": { 
    ".read": true, 
    ".write": "secret == 'mykey'" 
    } 
} 

И как бы я реализовать это в моем запросе на стороне сервера HTTP? Буду ли я создать заголовок под названием secret со значением mykey, как это:

server.js
{"secret": "mykey"} 
+0

Вы когда-нибудь решали это ??? Я получаю «Неизвестную переменную« секрет »при попытке сделать указанное вами правило ... – olefrank

ответ

5

Чтобы использовать тайну в запросе HTTP, вы передаете его в параметре Идента в URL. Например.

curl 'https://yours.firebaseio.com/.json?auth=<your_secret>' 

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

Если у вас есть , чтобы определить сервер, вы должны использовать пользовательский токен вместо своего секрета. Когда вы создаете пользовательский токен, вы точно определяете, что входит в переменную auth. Например.

{ 
    "uid": "myserver" 
} 

Теперь вы можете проверить для этого конкретного UID в правилах безопасности:

{ 
    "rules": { 
    ".read": true, 
    ".write": "auth.uid = 'myserver'" 
    } 
} 

Вы можете мятой пользовательский маркер с помощью этого jsfiddle: http://jsfiddle.net/firebase/XDXu5/

0

Firebase секрет устарела. Поэтому я рекомендую вам не использовать это.

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