2016-07-06 4 views
4

Heroku 앱에서 express-stormpath를 사용하려고합니다. 나는 여기에 문서를 다음과 같은거야, 내 코드는 매우 간단하다 :apiKey 키 ID와 암호가 급행 폭풍 경로에 있어도 필수입니다.

var express = require('express'); 
var app = express(); 
var stormpath = require('express-stormpath'); 

app.use(stormpath.init(app, { 
    website: true 
})); 

app.on('stormpath.ready', function() { 
    app.listen(3000); 
}); 

가 이미 this question 보았고 Heroku devcenter docs을 따랐습니다. 문서에서는 Heroku 앱의 경우 옵션을 전달할 필요가 없지만 옵션을 전달하려고 시도했지만 아무 것도 작동하지 않는다고 말합니다. 예를 들어, 나는이 시도했다 :

app.use(stormpath.init(app, { 
    // client: { 
    // file: './xxx.properties' 
    // }, 
    client: { 
    apiKey: { 
     file: './xxx.properties', 
     id: process.env.STORMPATH_API_KEY_ID || 'xxx', 
     secret: process.env.STORMPATH_API_KEY_SECRET || 'xxx'  
    } 
    }, 
    application: { 
    href: 'https://api.stormpath.com/v1/applications/blah' 
    }, 
})); 

시도하고 무슨 일이 일어나고 있는지 확인하려면, 나는 클라이언트 개체를 인쇄 할 stormpath-config strategy valdiator에 CONSOLE.LOG 라인을 추가하고, 나에게이 제공 :

{ file: './apiKey-xxx.properties', 
    id: 'xxx', 
    secret: 'xxx' } 
{ file: null, id: null, secret: null } 

Error: API key ID and secret is required. 

두 번 호출되는 이유는 무엇입니까? 두 번째로 클라이언트 개체가 파일, ID 및 암호에 대해 null 값을 갖는 이유는 무엇입니까?

내가 heroku config | grep STORMPATH를 실행하면, 나는 끝없는 시간 후, 나는 마침내 완전히 추가 기능을 제거하고 Heroku가 CLI를 통해 그것을 다시 설치 한 후 수출에 의해 작동 얻을 관리

STORMPATH_API_KEY_ID:  xxxx 
STORMPATH_API_KEY_SECRET: xxxx 
STORMPATH_URL: https://api.stormpath.com/v1/applications/[myappurl] 
+0

'heroku config |의 출력은 무엇입니까? grep STORMPATH'? Heroku에서 잘못된 환경 변수가 채워질 수 있습니다. –

+0

편집 된 env 변수가 올바르게 설정되어 있지만 ValidateClientConfigStrategy.js가 여전히 {{file : null, id : null, secret : null} '을 인쇄하고 있습니다. – arete

+0

'heroku config : set' ([docs] (https : /devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for-a-deployed-application)) 대신에 환경 변수 인'STORMPATH_CLIENT_APIKEY_ID','STORMPATH_CLIENT_APIKEY_SECRET','STORMPATH_APPLICATION_HREF'를 설정하십시오. –

답변

2

나는 express-stormpath 라이브러리의 원 작성자이며 Stormpath에 대한 Heroku 문서를 작성했습니다.

이것은 100 % 저의 잘못으로 Stormpath 측의 문서/구성 버그입니다. 하루에

돌아 가기, 우리의 모든 라이브러리는 기본적으로 여러 환경 변수를 보았다 :

  • STORMPATH_URL (응용 프로그램 URL)
  • STORMPATH_API_KEY_ID
  • STORMPATH_API_KEY_SECRET

그러나, 그 전에는 도서관을 업그레이드하기 시작했고, 우리는 모든 suppo에 대해보다 표준적인 접근 방식을 사용하기를 원했습니다.

  • STORMPATH_APPLICATION_HREF
  • STORMPATH_CLIENT_APIKEY_ID
  • STORMPATH_CLIENT_APIKEY_SECRET
: rted 언어/프레임 워크/등의 일을 더 명시 적으로 만들기 위해, 우리는 기본적으로 는에, 우리가 기본적으로 찾는 변수 이름

불행히도 이러한 변경 사항을 반영하기 위해 Heroku 통합 또는 설명서를 아직 업데이트하지 않았기 때문에이 문제가 발생했습니다.

Heroku Addon이 기본적으로 제공하는 변수의 이름을 수정하기 위해 엔지니어링 팀에 티켓을 제출했습니다. 오늘 오후에 Heroku 설명서를 업데이트하여이 문제를 해결할 예정입니다. 미래에 다른 누구를 위해.

모든 혼란과 좌절에 대해 진심으로 사과드립니다. 때로는 이러한 것들이 균열을 빠져 나가고 이와 같은 경험을 통해 우리는이 재료를 더 빨리 잡을 수있는 더 나은 테스트가 필요하다는 것을 깨닫게됩니다.

저는 내부적으로 몇 가지 변경 사항을 적용하여 업데이트와 같은 업데이트를보다 효과적으로 진행할 수 있도록 노력할 것입니다. 당신은 무료 Stormpath 티셔츠를 원하는 경우

, 나를 명중하고 나는 짜증과 퍼팅에 대한 '감사'라고 할 수있는 작은 방법으로 당신에게 제공 한거야 : [email protected]

+0

동일한 문제가있는 것 같지만 여기에있는 예를 따라 Heroku를 사용하고 있지 않습니다. https : //stormpath.com/blog/making-expressjs-authentication-fun-again. 동일한 디버깅을 통해 두 번 호출되는 전략 유효성 검사기가 나왔습니다. 처음에는 정확한 데이터가 나타나고 두 번째 데이터는 모두 null입니다. – Carasel

+0

API 키 쌍을 어떻게 처리할까요? 나는 그것을 다운로드했고 튜토리얼을 읽은 후에도 전혀 모른다. 고마워. – Samoth

2

수 변수 STORMPATH_CLIENT_APIKEY_IDSTORMPATH_CLIENT_APIKEY_SECRET. 어떤 이유로 Heroku 대시 보드를 통해 설치하면 express-stormpath가 apiKey 및 비밀 필드를 찾지 못합니다 (변수를 내 보낸 경우에도).