accessToken을 createUploadLink에 넣어주는 이유?
222
작성한 질문수 15
ex) src/components/commons/apollo/index.tsx
// ...
const uploadLink = createUploadLink({
uri: "...",
headers: { Authorization: `Bearer ${accessToken}` },
});
const client = new ApolloClient({
link: ApolloLink.from([uploadLink]),
cache: GLOBAL_STATE,
});
// ...이전 강의에서 createUploadLink 함수를 이미지같은 파일을 업로드 설정을 위해 불러왔었는데 이 안에 accessToken을 넣어주는 게 이해가 가지 않았습니다. 지금 제 머릿속에는 자동으로 headers에 accessToken을 담아서 인가를 해주는 설정을 왜 이미지업로드를 위한 설정함수에 accessToken을 넣어주는 거지?라는 생각이 들어서 혼란스럽습니다.. 이 부분에 대해서 제가 잘못 이해하고 있거나 이렇게 해주는 이유에 대해서 알려주신다면 감사드리겠습니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
joka님, 문의하신 내용에 대한 답변을 드리겠습니다.
createUploadLink 함수에 accessToken을 전달하는 이유는 인증을 확보한 상태에서 파일 업로드가 이루어지도록 하기 위함입니다. 일반적으로 서버에서는 민감한 작업을 수행할 때 사용자의 인증 정보, 즉 accessToken을 요구합니다. 이미지나 파일을 업로드하는 경우도 사용자가 권한이 있는지 검증을 하기 위해 토큰을 검사합니다.
해당 accessToken을 HTTP 헤더에 포함시켜 보내면, 서버는 이 헤더를 확인하여 요청이 유효한 사용자로부터 왔는지를 검증할 수 있습니다. 이러한 과정을 통해 서버는 무단 업로드 및 보안 문제를 예방하고, 권한이 있는 사용자만이 파일 업로드를 할 수 있게 하기 위해 accessToken을 사용합니다.
다시 말해, 이미지 업로드가 인증된 사용자에 의해서만 수행되어야 한다면, 해당 작업을 요청하는 클라이언트는 서버에게 자신이 유효한 사용자임을 증명하는 accessToken을 함께 제공해야 합니다. 그렇기 때문에 createUploadLink 함수에서 uploadLink를 생성할 때 accessToken을 headers에 포함하는 것입니다.
혼란스러우셨던 부분이 잘 해소되셨길 바랍니다. 추가적인 질문이 있으시다면 언제든지 문의해 주세요.
fetchBoardsOfMine, fetchBoardsCountOfMine 에러 문의드립니다
0
36
1
댓글 기능 구현 중 질문드립니다.
0
66
1
쿠폰코드 발급
0
132
2
example 서버 플레이그라운드, API 접속 모두 안됩니다.
0
86
2
문의드립니다!! ㅠㅠ
0
101
2
graphql 백엔드 서버가 포폴용 빼곤 접속이 안됩니다.
0
76
2
_app.js 작성 이후로 에러가 발생하네요
0
93
2
학습자료
0
70
2
학습자료가 안열립니다.
0
49
2
플레이 그라운드 퀴즈 문제 질문이 있습니다.
0
59
0
기존강의 구매자, 업데이트 끝인가요?
0
109
3
업데이트 버전 수강
0
88
2
완벽한 프론트엔드
0
136
2
나만의 쇼핑몰 샘플 페이지 접속 확인부탁드립니다.
0
81
1
graphql 접속이 안됩니다.
0
100
2
const, let 사용 질문 드립니다.
0
70
2
싸이월드 만들기 1탄 피드백 부탁드립니다.
0
122
2
회원가입 과제 피드백 부탁드립니다.
0
80
2
styled.span / styled.input "CSS 자동완성"
0
47
1
쿠폰 발급 관련
0
166
2
서버 502 error
0
247
2
쿠폰 다시 부탁드려도 될가여?
0
140
2
a태그 패딩했을때 왜 크기가 줄어들지 않고 늘어나나요
0
184
2
2분 44초 질문
0
131
3





