이 글의 내용은 WeChat 애플릿의 인증 로그인 과정을 설명하기 위한 것입니다. 필요한 친구가 참고할 수 있습니다.
회사의 사업은 발전하고 있으며 최근 WeChat 애플릿 개발을 완료했습니다. 시나리오는 다음과 같습니다. 동일한 위챗 오픈 플랫폼에서 동일한 주제를 가진 앱과 위챗 애플릿은 동일한 비즈니스를 완료합니다. 사용자가 앱이나 위챗 애플릿에 들어갈 때 사용자의 유니온 ID를 얻어야 현재 사용자 신원을 확인하고 완료할 수 있습니다. 로그인. 미니 프로그램의 "사용자 정보 가져오기" API(getUserInfo)의 호출 방법이 이전에 비해 크게 업데이트되었습니다. 사용자 인증 및 로그인을 우아하게 구현하는 것이 매우 중요합니다. 다음은 WeChat 미니 프로그램 인증 로그인 프로세스를 구현한 것입니다. 개발 아이디어와 요약은 아래에 공유되어 있습니다.
설명:
애플릿은 wx.login()을 호출하여 임시 로그인 자격 증명 코드를 얻고 이를 개발자 서버로 다시 보냅니다.
개발자 서버 코드는 사용자의 고유 식별자 openid 및 세션 키 session_key로 교환됩니다.
임시 로그인 인증번호는 한 번만 사용할 수 있습니다
팔로워가 공식 계정과 상호 작용한 후 공식 계정에서 팔로워의 OpenID(암호화된 WeChat ID, 각 사용자의 OpenID)를 얻을 수 있습니다. 각 공식 계정마다 고유합니다. 동일한 사용자의 openid는 공식 계정마다 다릅니다. ——WeChat 공개 플랫폼 개발자 문서
일반 사용자의 식별은 현재 공식 계정에만 고유합니다
공식 계정마다, 동일한 사용자라도 오픈 ID가 다릅니다
간단히
openid = hash(uid + app_id)로 이해하면 됩니다.
개발자가 여러 개의 모바일 애플리케이션, 웹사이트 애플리케이션, 공개 계정(미니 프로그램 포함)을 보유하고 있는 경우, 동일한 위챗 하에 모바일 애플리케이션, 웹사이트 애플리케이션, 공개 계정이 존재하는 한 사용자는 유니온ID로 고유하게 구별될 수 있습니다. 오픈 플랫폼 계정, 공개 계정(미니 프로그램 포함)의 경우 사용자의 유니온 ID는 고유합니다. 즉, 동일한 사용자의 경우 동일한 WeChat 오픈 플랫폼의 다양한 애플리케이션에 대해 Unionid가 동일합니다. UnionID 메커니즘 설명
개발자가 여러 모바일 애플리케이션, 웹사이트 애플리케이션 및 공용 계정 간의 사용자 계정을 통합해야 하는 경우 WeChat 개방형 플랫폼(open.weixin.qq.com)으로 이동하여 공용 계정을 사용해야 합니다. 위의 요구 사항을 충족하는 UnionID 메커니즘입니다.
하나의 WeChat 오픈 플랫폼 계정 아래에 여러 개의 모바일 애플리케이션, 웹사이트 애플리케이션, 공개 계정 및 미니 프로그램을 보유할 수 있습니다
동일한 모바일 애플리케이션, 웹사이트 애플리케이션 및 공개 계정(미니 프로그램 포함)인 한 WeChat 오픈 플랫폼 계정 프로그램) 사용자의 Unionid는 고유합니다.
개방형 플랫폼의 사용자 고유 식별자
간단히 다음과 같이 이해할 수 있습니다.
unionid = hash(uid + 开放平台id)
요약하자면
WeChat은 다양한 애플리케이션의 다양한 사용자에 대해 고유한 openId를 가지고 있지만 사용자가 동일한 사용자는 Unionid로 구별되어야 합니다. 일반적으로 자신의 백엔드에는 자체 사용자 테이블이 있으며 각 사용자는 서로 다른 사용자 ID를 갖습니다. 즉, 동일한 WeChat 오픈 플랫폼 하에서 동일한 사용자의 동일한 주제에 대한 애플리케이션은 동일한 사용자 ID, Unionid 및 다른 openid에 해당합니다. 따라서 사용자가 로그인할 때 WeChat에서 반환한 Unionid만 사용하여 동일한 사용자인지 확인한 다음 이를 사용자 테이블과 연결하여 해당 사용자 ID를 얻을 수 있습니다.
개발자 계정에 연결된 미니 프로그램은 다음 세 가지 방법을 통해 UnionID를 얻을 수 있습니다.
wx.getUserInfo 인터페이스를 호출하여 해독된 데이터에서 UnionID를 가져옵니다. 이 인터페이스에는 사용자 인증이 필요합니다. 개발자는 사용자가 인증을 거부한 후 상황을 적절하게 처리해야 합니다.
개발자 계정 아래에 동일한 주제의 공개 계정이 있고, 해당 사용자가 이미 해당 공개 계정을 팔로우한 경우. 개발자는 사용자의 다시 인증 없이 wx.login을 통해 직접 사용자의 UnionID를 얻을 수 있습니다.
개발자 계정 하에 동일 법인의 공식 계정이나 모바일 앱이 있고, 해당 사용자가 공식 계정이나 모바일 앱에 로그인할 수 있는 권한이 있는 경우. 개발자는 사용자에게 다시 인증을 요구하지 않고 wx.login을 통해 직접 사용자의 UnionID를 얻을 수도 있습니다.
사용자가 조건 2와 3을 충족하면 개발자는 wx.login을 통해 사용자의 Unionid를 직접 얻을 수 있습니다. 그렇지 않으면 인터페이스를 호출해야 합니다wx.getUserInfo
추가로 주의할 점은 사용자의 거부를 적절하게 처리하는 것입니다. 조건을 승인합니다.
wx.login에 전화하여 코드를 받으세요.
wx.getSetting을 사용하여 사용자의 인증 상태를 가져옵니다.
사용자가 인증된 경우 wx.getUserInfo API를 직접 호출하여 사용자의 최신 정보를 가져옵니다.
사용자가 인증되지 않은 경우 사용자에게 로그인하라는 버튼이 인터페이스에 표시됩니다. 사용자가 클릭하고 인증하면 사용자의 최신 정보를 얻을 수 있습니다.
얻은 사용자 데이터를 wx.login
실제 비즈니스 시나리오에서는 사용자가 작은 값을 입력하기를 바랍니다. 프로그램을 이용하시면 로그인 없이 정상적으로 상품을 보실 수 있으며, 미니 프로그램에 대한 기본적인 이해가 가능합니다. 사용자가 일부 고급 기능 및 시나리오를 사용해야 하는 경우 이때 사용자에게 인증을 요청하면 사용자 인증 가능성이 크게 향상됩니다.
아약스로 로그인 로직을 캡슐화하세요
프로세스:
캡슐화의 의미
더 이상 현재 인터페이스에 로그인이 필요한지, 사용자가 승인되었는지, 모든 요청이 직접 호출되는지,ajax()
모든 것에 신경 쓰지 마세요. 필요한 절차가 완료되면 로그인 및 인증이 완료됩니다. 사업 확장시에는 사업 구현에만 집중하시면 됩니다.
관련 추천:
WeChat 미니 프로그램 개발: 기업의 미니 프로그램 개발 필요성
위 내용은 WeChat 애플릿의 인증 로그인 프로세스에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!