2016-07-12 6 views
3

У меня есть git-tracked repo, и я настраиваю его для работы с APN для push-уведомлений IOS. Я смотрю на реализацию модуля NPM https://github.com/argon/node-apn аналогично тому, как здесь: https://github.com/hollyschinsky/PushNotificationSampleКак безопасно хранить файл .pem при работе с проектом git-tracked heroku?

В этом коде есть

var options = { 
    gateway: 'gateway.sandbox.push.apple.com', // this URL is different for Apple's Production Servers and changes when you go to production 
    errorCallback: callback, 
    cert: 'your-cert.pem', // ** NEED TO SET TO YOURS - see this tutorial - http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 
    key: 'your-key.pem', // ** NEED TO SET TO YOURS 
    passphrase: 'your-pw', // ** NEED TO SET TO YOURS 
    port: 2195,      
    enhanced: true,     
    cacheLength: 100     
} 

Однако, как я хотел ссылаться на мои .pem файлы без их совершения в Гитуб?

В настоящий момент я отправляюсь в Хереку.

+0

Я здесь по тому же вопросу, лучший способ сделать это, наконец, что вы сделали? – Polak

ответ

4

Сделайте это через переменные конфигурации Heroku (окружение).

Если вы используете node-apn или что-то подобное, вы должны иметь возможность pass in the certificate and key content instead of a path. Используйте ENV vars, чтобы передать содержимое ключа, как recommended by Heroku.

cert: process.env.APN_CERT, 
key: process.env.APN_KEY, 
passphrase: process.env.APN_PASSPHRASE, 

Поскольку вы не можете установить значения многоканальный для приложения конфигурации в веб-интерфейсе, вы должны будете использовать командную строку для установки APN_CERT и APN_KEY:

$ heroku config:set APN_CERT="-----BEGIN CERTIFICATE----- 
> MIIDOjCCAiICCQCZTWzQNz6sqTANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJB 
> VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0 
... 
+1

Обновлен, чтобы предложить один ответ, который работает для многострочных строк. Если ваша библиотека APN не может взять строку и требует файла, напишите временный файл из строки и передайте этот файл в библиотеку. –