예를 들어https://beta.biaoqing.com/callback/qq/?#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000
我在nodejs中用var access_token=req.query.access_token;
access_token을 얻을 수 없습니다
仅有的幸福2017-05-24 11:40:59
얻을 수 없습니다. #은 프런트엔드 해시입니다. 요청을 보낼 때 해시 뒤의 내용은 URL로 전송되지 않습니다. 끝에 #
가 있는 이유는 무엇입니까?黄舟2017-05-24 11:40:59
특별한 방법을 가르쳐주세요:
으아아아기회주의적인 것으로 간주됩니다.
es6의 Object.values() 메서드는 위의 in 메서드를 대체할 수 있지만 node v7.x 버전과만 호환됩니다.
------------구분자------------ - -------
위 방법을 개선하세요. # 기호를 제거하면 문제가 없습니다.
으아아아迷茫2017-05-24 11:40:59
제3자가 승인한 대체 랜딩 페이지죠?
이 랜딩 페이지의 프런트 엔드는 해시 뒤의 콘텐츠를 얻을 수 있으므로 논리는 다음과 같습니다.
사용자가 웹사이트에서 제3자 인증으로 이동합니다.-> 제3자 인증이 웹사이트에 미리 설정된 콜백 랜딩 페이지로 성공적으로 이동합니다.-> 콜백 랜딩 페이지 해시에 access_token 및 기타 매개변수가 포함됩니다. js가 사용됩니다. 해시의 매개변수를 사용하여 백엔드에 설정된 인터페이스에 비동기 요청을 보냅니다. -> ajax가 성공을 반환하고 js 제어가 점프합니다. -> 브라우저가 실제 사용자 대화형 인증 성공 페이지로 이동합니다.
즉, 첫 번째 단계에서 반환된 랜딩 페이지는 js를 사용하여 해시된 콘텐츠를 제거하고 백엔드가 제3자로부터 승인된 토큰을 얻은 후 이를 다시 백엔드로 보내는 것이 목적입니다. , js는 점프 변경을 즉시 제어합니다. 이 전송 페이지에 점프와 같은 프롬프트와 같은 일부 UI를 추가하는 것이 가장 좋으며 이는 사용자 경험 측면에서 절대적으로 허용됩니다.