클라이언트 코드 스캔 로그인 기능의 실현 사고방식

 , 。 , , 。
1.   , ? , ?
2.   ?

우선 우리는 먼저 위챗의 실현 방향을 정리해서 우리가 이 난제를 해결하는 사고방식 방향을 이해하도록 편리하게 한다.위챗이 로그인한 QR코드는 실제적으로 하나의 URL을 QR코드로 바꾸는 형식이다. 위챗 클라이언트를 통해 코드를 스캔한 후에 이 URL을 열었을 뿐이다. 내가 포착한 위챗 QR코드의 URL은https://login.weixin.qq.com/l/YdmTu30I5A==, 이 URL의 YdmTu30I5A== 이번 세션의 유일한 ID를 대표합니다. 이것은 브라우저의 세션 id와 약간 유사합니다. 이 ID를 통해 위챗은 확인 결과를 웹 페이지에 피드백할 수 있습니다.위챗 QR코드 로그인 기능을 사용하려면 두 가지 전제가 있어야 한다. 첫째, 클라이언트에 위챗 앱을 설치해야 한다.둘째, 사용자는 위챗 앱에 로그인해야 한다.https://wx.qq.com/
왜 이 두 가지 조건이 있어야 합니까?그것은 위챗이 웹 버전에 로그인할 수 있는지 확인할 때 위챗은 현재 앱의 로그인 정보를 추출하여 위의session ID를 서버에 함께 보내야 하기 때문이다. 그러면 서버가 로그인 정보와session ID를 받은 후에 두 가지를 확인할 수 있다. 하나는 로그인한 클라이언트를 확인하는 사용자가 검증한 것이다.둘째, session ID 서버를 통해 피드백 결과를 어느 페이지로 보내는지 알 수 있다.
따라서 첫 번째에 대한 우리의 관건은 스캔 전에 사용자가 이미 검증되고 합법적인 사용자(검증 방식은 사용자 이름 + 비밀번호일 수도 있고 보안 키일 수도 있음)를 확보하는 것이다. 로그인 여부를 선택할 때 이 결과를 서비스 단말기로 함께 보내면 된다.만약 사용자가 합법적인지 검증하지 않았다면 위챗의 처리 방식처럼 QR코드가 식별할 수 없거나 앱에 먼저 로그인하라는 알림을 직접 알려줄 수 있다.
신분 검증이 있으면 이제 두 번째 문제를 해결하고 피드백 결과를 어떻게 실시간으로 웹 페이지에 표시합니까?어떤 친구는 클라이언트가 백그라운드에 요청을 간단하게 보내면 된다고 말할 수도 있고, 웹 페이지에서 aax로 시간 내에 서버에 보내서 피드백이 있는지 확인할 수도 있다.나는 이런 방법에 찬성하지 않는다. 왜냐하면 aax 퀴즈 방식은 클라이언트와 서버 측 자원을 매우 소모하기 때문이다.여기에는 또 다른 기술인 웹 실시간 전송 기술이 관련되어 있다. 전송 기술을 사용하면 서버 측과 클라이언트의 자원을 절약하고 모든 메시지를 안정적으로 전송하고 수신할 수 있다.제가 실현하는 과정에서 저는 제3자 푸시 서비스를 사용했습니다. - GoEasy 푸시는 매우 간단합니다. 저희 프로젝트의 다른 기능도 GoEasy 웹 실시간 푸시 서비스를 사용했기 때문에 여기서 제가 직접 사용한 GoEasy 푸시는 로그인 피드백 결과를 서비스 기기로 푸시합니다.나의 실현 절차는 매우 간단하다. 전송된session ID를 클라이언트와 웹 사이트의 통신 채널로 하고 웹 사이트 구독은session ID를 가치 채널로 한다. 클라이언트는 검증 결과와session ID를 서버에 보내고 서버 측은 이 채널을 통해 결과를 웹 버전에 주동적으로 전달할 수 있다.만약에 클라이언트도 상응하는 피드백을 해야 한다면 클라이언트도 이 채널만 구독하고 서버 측에서 결과를 웹 버전과 클라이언트에게 동시에 전달합니다. 메시지를 받은 후에 수요에 따라 goeasy의 리셋 함수에서 당신이 하고 싶은 일을 할 수 있습니다.goeasy 푸시 사용에 관해서는 이 블로그를 참고하십시오.http://www.cnblogs.com/jishaochengduo/articles/5552645.html그리고 GoEasy 푸시 홈페이지에도 QR코드로 로그인한 데모가 있으니 효과를 보러 가셔도 됩니다.
여러분에게 도움이 되었으면 좋겠습니다. 만약 잘못 이해한 부분이 있다면 여러분이 바로잡아 주십시오.

좋은 웹페이지 즐겨찾기