<aside> ❗
[사용자 조회 api를 만들어야 하는 이유]
스프린트 미션 진행할 때는 사용자 정보 조회 api를 안 만들고 진행했고, (내가) 해당 api를 만들어야 하는 이유를 알 수 없어 chatGPT에게 물어보았다. (…)
[chatGPT의 답변]
인증은 accessToken으로 하지만, 실제 사용자 정보는 전용 API로 가져오는 게 좋다.
// 사용자 id 찾기 -- repository
async function findById(id) {
return await prisma.user.findUnique({
where: { id },
select: {
id: true,
email: true,
nickname: true,
profileImage: true,
createdAt: true,
updatedAt: true,
},
});
}
// GET: 사용자 1人 -- service
async function getUser(id) {
const user = await usersRepository.findById(id);
if (!user) {
const error = new Error("해당 사용자를 찾을 수 없습니다.");
error.code = 404;
throw error;
}
return user;
}
// GET: 사용자 1人 -- controller
usersController.get(
"/",
passport.authenticate("access-token", {
session: false,
failWithError: true,
}),
async (req, res, next) => {
try {
const userId = req.user.id;
const userInfo = await usersService.getUser(userId);
res.json(userInfo);
} catch (err) {
next(err);
}
}
);
### 사용자 정보 조회
GET <http://localhost:3002/api/users>
Content-Type: application/json
Authorization: Bearer 토큰
<aside>
없음
</aside>