JJoriping / KKuTu

글자로 놀자! 끄투 온라인
http://jjo.kr/kkutu
GNU General Public License v3.0
328 stars 266 forks source link

디스코드 로그인 에러 #1098

Closed aslhanball closed 8 months ago

aslhanball commented 8 months ago

TokenError at Strategy.OAuth2Strategy.parseErrorResponse (C:\Users\개인정보모자이크\Desktop\끄투\KKuTu-master\Server\lib\node_modules\passport-oauth2\lib\strategy.js:329:12) at Strategy.OAuth2Strategy._createOAuthError (C:\Users\개인정보모자이크\Desktop\끄투\KKuTu-master\Server\lib\node_modules\passport-oauth2\lib\strategy.js:376:16) at C:\Users\개인정보모자이크\Desktop\끄투\KKuTu-master\Server\lib\node_modules\passport-oauth2\lib\strategy.js:166:45 at C:\Users\개인정보모자이크\Desktop\끄투\KKuTu-master\Server\lib\node_modules\oauth\lib\oauth2.js:191:18 at passBackControl (C:\Users\개인정보모자이크\Desktop\끄투\KKuTu-master\Server\lib\node_modules\oauth\lib\oauth2.js:132:9) at IncomingMessage. (C:\Users\개인정보모자이크\Desktop\끄투\KKuTu-master\Server\lib\node_modules\oauth\lib\oauth2.js:157:7) at IncomingMessage.emit (events.js:326:22) at endReadableNT (_stream_readable.js:1241:12) at processTicksAndRejections (internal/process/task_queues.js:84:21) 라고 뜨네요

lshqqytiger commented 8 months ago

clientId와 clientSecret 값을 제대로 입력하셨는지 확인해보세요.

aslhanball commented 8 months ago

제대로 입력되있는걸 확인했습니다

aslhanball commented 8 months ago

다른 해결책은 없는건가요?

d0ul commented 8 months ago

리다이렉트 주소 작성 절차

  1. Discord 개발자 포털을 방문합니다.
  2. 자신이 등록한 애플리케이션 (My Application)을 선택합니다.
  3. Oauth2를 선택합니다. oAuth2를 선택한 화면
  4. 리다이렉트 링크를 입력합니다. 개인 PC에서만 사용할 경우에는 http://localhost로 모자이크된 부분을 입력하여도 상관 없으나, 외부로 끄투 서비스를 공유하고 싶다면 포트포워딩된 외부 IP 또는 도메인을 입력하여야 합니다. 리다이렉트
  5. 하단의 Save Changes를 클릭하여 저장합니다.

ClientID와 ClientSecret 작성 절차

시작하기에 앞서

Server/lib/sub/auth.inc.json의 형식으로 auth.json을 만들어 discord부분만 남겨놓고, daldalso등을 제거하여야 합니다.

무슨 말인지 명확하지 않아 따라하기 힘드시다면, 아래 값을 복사하여 auth.json 파일을 만들어 붙여 넣어도 됩니다.

{
    "discord": {
        "clientID": "",
        "clientSecret": "",
        "callbackURL": "/login/discord/callback"
    }
}

절차

  1. Discord 개발자 포털을 방문합니다.
  2. 자신이 등록한 애플리케이션 (My Application)을 선택합니다.
  3. Oauth2를 선택합니다. oAuth2를 선택한 화면
  4. Client ID 밑 Copy를 눌러 clientID에 붙여넣으시고, Client Secret 밑 Reset Secret을 눌러 새로 발급된 Client Secret을 clientSecret에 붙여넣으세요.
  5. 이후 파일을 저장하여 끄투 서버를 실행하면 해결될 것입니다.

    주의사항 : 디스코드의 2단계 인증을 활성화 했을 경우 Client Secret 재발급 때 마다 OTP를 물어볼 수 있습니다. 자신이 Oauth 정보를 올바르게 입력했다고 생각해도, 문제의 해결을 위해서는 다시 시도하는 것이 바람직합니다.

aslhanball commented 8 months ago

감사합니다