API 키 숨기기

여러 시점에서 JSON API에 호출을 보내고 싶습니다. 때로는 API 키를 제공해야 하므로 관리자 대시보드에서 키를 생성한 후 API 호출에 포함해야 합니다. 예를 들어:

var token = [API KEY]
$.ajax({
     url: 'https://myforum.com/groups/[groupname].json',
      contentType: "application/json",
      headers: {
          "Api-Key": token,
          "Api-Username": "[username]"
        },
        dataType: 'json',
        success: function(result){
             console.log('result = ' + result);
         }
})

이 키가 사용자에게 노출되지 않도록 보호하는 방법이 있을까요?

현재 제 해결책은 이 함수를 Discourse 앱 외부에서 실행하는 것입니다. 즉, 제 앱은 다른 곳에 호스팅된 엔드포인트를 호출하고, 그 엔드포인트가 다시 이 함수를 호출하도록 합니다. 이렇게 하면 API 키는 제 Discourse 앱과 별도로 저장된 함수에 위치하게 되고, 제 앱은 엔드포인트만 알면 됩니다.

하지만 이 함수를 Discourse 앱 내부, 예를 들어 테마나 플러그인 안에 포함할 수 있다면 더 깔끔할 것입니다. 하지만 제 생각에는 코드의 일부라면 어떤 방식으로든 사용자가 API 키를 볼 수 있을 것 같습니다.

API 키를 숨길 수 있는 방법이 있을까요?

민감한 API 요청을 수행하는 앱은 프론트엔드가 아닌 백엔드에서 이러한 작업을 처리하는 것이 좋습니다.

이렇게 하면 사용자 지정 캐싱, 병렬 API 호출, 보안 등 다양한 이점을 얻을 수 있습니다. 클라이언트에서 실행되는 JS 코드로 이를 처리하는 것은 좋은 방법이 아닙니다.

감사합니다. API 요청을 처리하기 위해 백엔드 구조를 설정했지만, 제 Discourse 인스턴스와는 분리되어 있습니다(Discourse와 전혀 연결되지 않음). 이 작업을 Discourse 앱 자체의 백엔드에서 수행할 수 있는 방법이 있을까요?

Discourse 인스턴스가 어떻게/어디에 호스팅되는지에 따라 달라질 것 같습니다. discourse.org에서 호스팅되는 앱의 백엔드에 연결할 수 있는 방법이 있을까요?

Rails에서 플러그인으로 구축해야 하며, 제3자 플러그인 추가가 허용되는 요금제에 가입되어 있어야 합니다.