sapper 및 sapper-environment 에 대한 롤업 구성에서 replace를 사용하여 sapper 의 클라이언트 측에 환경 변수를 전달하고 있습니다. 이것이 안전합니까? 이에 접근하는 더 나은 / 안전한 방법이 있습니까?
아래 구성 사용 :
rollup.config.js
const sapperEnv = require('sapper-environment');
export default {
client: {
input: config.client.input(),
output: config.client.output(),
plugins: [
replace({
...sapperEnv(),
'process.browser': true,
'process.env.NODE_ENV': JSON.stringify(mode)
})
...
그런 다음 stores.js의 변수를 사용할 수 있습니다.
import { writable } from 'svelte/store';
import Client from 'shopify-buy';
const key = process.env.SAPPER_APP_SHOPIFY_KEY;
const domain = process.env.SAPPER_APP_SHOPIFY_DOMAIN;
// Initialize a client
const client = Client.buildClient({
domain: domain,
storefrontAccessToken: key
});
export { key, domain, client };
나는 이것을 server, js에서 실행하고 세션 데이터를 통해 변수를 전달하려고 시도했지만 클라이언트 측은 내가 무엇을하든 항상 'undefined'를 반환하는 것처럼 보입니다.
여기에는 두 가지 질문이 있습니다. a) 안전 undefined
합니까? b) 왜 값이 있습니까?
첫 번째 질문에 대한 대답은 '아니오'입니다. 클라이언트 (또는 세션 데이터)에 제공되는 JavaScript에 자격 증명을 포함 할 때마다 해당 자격 증명을 찾는 방법을 아는 모든 사람이 사용할 수있게됩니다. 이를 방지해야하는 경우 인증 된 클라이언트를 대신하여 요청을 수행하려면 서버 (또는 다른 서버)가 필요합니다.
두 번째 부분은 불행히도 복제 없이는 말하기가 매우 어렵습니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다