모든 사람이 WeChat 미니 프로그램을 더 잘 개발할 수 있도록 이 기사에서는 모든 사람에게 도움이 되기를 바라며 주로 WeChat 미니 프로그램의 로그인 논리를 공유합니다.
등록/로그인
Mini Terminal" style="margin: 0.8em 0px; box-sizing: border-box; line-height: 1.3em; 2.13em;"> 미니 프로그램:
위의 두 API인 wx.login과 wx.getUserInfo를 통해 해당 정보를 가져오고, 위의 인터페이스를 통해 자신의 서버에 전달합니다.
다음과 같은 7가지 정보가 있습니다. 매개변수:
appid 小程序唯一标识 secret 小程序的 app secret js_code //wx.login登录时获取的 code,用于后续获取session_key //下面两个参数用户服务器端签名校验用户信息的 signature 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息。 rawData 不包括敏感信息的原始数据字符串,用于计算签名。 //下面两个参数是用于解密获取openId和UnionId的 encryptedData 包括敏感数据在内的完整用户信息的加密数据 iv 加密算法的初始向量 当然,可以精简为以下三个参数. 其余的签名校验的参数可省略,而appid和secret可以直接写在服务器. js_code // wx.login登录时获取的 code,用于后续获取session_key encryptedData 包括敏感数据在内的完整用户信息的加密数据 iv 加密算法的初始向量
서버측 처리 로직
관련 정보가 서버로 전송된 후 서버
1. 먼저 js_code에 따라 WeChat 서버로 이동하여 session_key를 가져옵니다.
2. 이 단계는 생략 가능) sha1(rawData + sessionkey )을 이용하여 문자열을 얻어와서 서명값과 동일한지 판단하면, 사용자 정보가 맞는 것이므로 다음 단계로 진행하시면 됩니다. 다르다면 사용자 정보가 변조되었거나 만료되었음을 의미합니다.
3. 그런 다음 암호 해독 알고리즘(입력 매개변수는 appId, sessionKey, 암호화된 데이터, iv, jsonObj 반환)에 따라 직접 암호를 해독하고 openId를 가져옵니다.
4. 등록/로그인 작업 로직이 완료된 후 서버의 sessionId(또는 기타 토큰)를 변경하면 사용자 정보가 반환됩니다.
그 중 session_key를 얻기 위한 서버의 요청은 다음과 같습니다.
(소문자는 고정됨을 의미하고 대문자는 대체됨을 의미함)
https://api.weixin.qq.com/ sns/jscode2session?appid=APPID&secret= SECRET&js_code=JSCODE&grant_type=authorization_code
반환:
//正常返回的JSON数据包 { "openid": "OPENID", "session_key": "SESSIONKEY" "expires_in": 2592000 } //错误时返回JSON数据包(示例为Code无效) { "errcode": 40029, "errmsg": "invalid code" }
관련 복호화 알고리즘:
https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html
참고: 샘플 코드에는 노드가 포함되어 있습니다. , C++, php, python.
서버에서 반환하는 데 필요한 정보:
sessionId/token 로그인 상태 식별
userInfo: jsonObject, 플랫폼의 사용자 정보 및 내용은 동일합니다.
마지막으로 로그인 작업을 메소드로 캡슐화하고 필요할 때마다 호출하세요.
//最终供外面调用的方法 function login(){ console.log('logining..........'); //调用登录接口 wx.login({ success: function (e) { console.log('wxlogin successd........'); var code = e.code; wx.getUserInfo({ success: function (res) { console.log('wxgetUserInfo successd........'); var encryptedData = encodeURIComponent(res.encryptedData); thirdLogin(code,encryptedData,res.iv);//调用服务器api } }) } }); } function thirdLogin(code,encryptedData,iv){ var url = "eeee/xxx/login/ttttt"; var params = new Object(); params.code = code; params.encryptedData = encryptedData; params.iv =iv; buildRequest(new Object(),url,params,{ onPre: function(page){}, onSuccess:function (data){ console.log('my login successd........'); console.log(data); getApp().globalData.session_id = data.session_id; getApp().globalData.uid = data.uid; getApp().globalData.isLogin = true; }, onError : function(msgCanShow,code,hiddenMsg){ } }).send(); }
관련 권장 사항:
사용자 정보를 얻기 위해 WeChat 애플릿을 구현하는 방법
Zhihu 예제 공유의 WeChat 미니 프로그램 버전
위 내용은 WeChat 애플릿은 로그인 기능의 논리적 배열을 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.
