• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

스스로 해보기3(클라이언트/서버 비밀키 구분하기) 에러가 나서 문의 남깁니다.

19.02.24 23:08 작성 조회수 229

0

터미널에서는 아래처럼 오류가 납니다.

sequelize deprecated Model.find has been deprecated, please use Model.findOne instead node_modules/sequelize/lib/model.js:4212:9

Executing (default): SELECT `id`, `host`, `type`, `clientSecret`, `frontSecret`, `createdAt`, `updatedAt`, `deletedAt`, `userId` FROM `domains` AS `domain` WHERE ((`domain`.`deletedAt` > '2019-02-24 14:06:19' OR `domain`.`deletedAt` IS NULL) AND `domain`.`host` = 'localhost:8003') LIMIT 1;

OPTIONS /v2/token 204 31.393 ms - 0

Executing (default): SELECT `id`, `host`, `type`, `clientSecret`, `frontSecret`, `createdAt`, `updatedAt`, `deletedAt`, `userId` FROM `domains` AS `domain` WHERE ((`domain`.`deletedAt` > '2019-02-24 14:06:19' OR `domain`.`deletedAt` IS NULL) AND `domain`.`host` = 'localhost:8003') LIMIT 1;

Executing (default): SELECT `id`, `host`, `type`, `clientSecret`, `frontSecret`, `createdAt`, `updatedAt`, `deletedAt`, `userId` FROM `domains` AS `domain` WHERE ((`domain`.`deletedAt` > '2019-02-24 14:06:19' OR `domain`.`deletedAt` IS NULL) AND `domain`.`host` = 'localhost:8003') LIMIT 1;

Executing (default): SELECT `domain`.`id`, `domain`.`host`, `domain`.`type`, `domain`.`clientSecret`, `domain`.`frontSecret`, `domain`.`createdAt`, `domain`.`updatedAt`, `domain`.`deletedAt`, `domain`.`userId`, `user`.`id` AS `user.id`, `user`.`email` AS `user.email`, `user`.`nick` AS `user.nick`, `user`.`password` AS `user.password`, `user`.`provider` AS `user.provider`, `user`.`snsId` AS `user.snsId`, `user`.`createdAt` AS `user.createdAt`, `user`.`updatedAt` AS `user.updatedAt`, `user`.`deletedAt` AS `user.deletedAt` FROM `domains` AS `domain` LEFT OUTER JOIN `users` AS `user` ON `domain`.`userId` = `user`.`id` AND (`user`.`deletedAt` > '2019-02-24 14:06:19' OR `user`.`deletedAt` IS NULL) WHERE ((`domain`.`deletedAt` > '2019-02-24 14:06:19' OR `domain`.`deletedAt` IS NULL) AND `domain`.`frontSecret` = NULL) LIMIT 1;

POST /v2/token 401 53.205 ms - 100

브라우저에서는 아래와 같이 나옵니다.

code: 401

message: "등록되지 않은 도메인입니다. 먼저 도메인을 등록하세요"

도메인은 등록 해놓았는데 이런 오류가 나와서 오타인지 3번 정도 체크해봤는데 그건 아닌거 같아서 질문드립니다.

답변 2

·

답변을 작성해보세요.

0

evanjin님의 프로필

evanjin

질문자

2019.02.25

감사합니다 v2.js에서 token 부분을 아래와 같이 바꾸니 해결 되었습니다.

router.post('/token', async (req, res) => {

const { frontSecret } = req.body;

try {

const domain = await Domain.find({

where: { frontSecret },

include: {

model: User,

attribute: ['nick', 'id'],

},

});

if (!domain) {

return res.status(401).json({

code: 401,

message: '등록되지 않은 도메인입니다. 먼저 도메인을 등록하세요',

});

}

const token = jwt.sign({

id: domain.user.id,

nick: domain.user.nick,

}, process.env.JWT_SECRET, {

expiresIn: '1m', // 1분

issuer: 'nodebird',

});

return res.json({

code: 200,

message: '토큰이 발급되었습니다',

token,

});

} catch (error) {

console.error(error);

return res.status(500).json({

code: 500,

message: '서버 에러',

});

}

});

0

콘솔 쪽 끝에서 두 번째 줄을 보니까 domain.frontSecret = NULL이라고 되어있는데 frontSecret이 제대로 서버로 전달되지 않은 것 같습니다. 이 부분을 체크해보셔야 할 것 같네요.