위챗 애플릿 미니 프로그램 개발 WeChat 미니 프로그램 개발을 위한 로그인 프로세스 생성 지침

WeChat 미니 프로그램 개발을 위한 로그인 프로세스 생성 지침

Apr 02, 2017 pm 03:49 PM

WeChat에 로그인한 사람은 누구나 사용자 신원의 고유성을 기록하기 위해 식별자가 필요하다는 것을 알고 있습니다. WeChat에서는 UnionId가 우리가 기록해야 하는 고유 ID이므로, UnionId를 얻는 방법이 핵심이 됩니다. 프로젝트는 미니 프로그램과 배경 PHP 코드의 두 부분으로 나뉩니다.

미니 프로그램 코드부터 시작하겠습니다

미니 프로그램의 js코드 로그인 프로세스

로그인 -> >getUserInfo는 iv 및 암호화된 데이터를 가져옵니다. -> 처리를 위해 이를 자체 서버에 전달합니다. -> 결과를 애플릿

var API_URL = "自己的服务器地址";
Page({
 onLoad: function () {
 console.log("iv");
 wx.login({//login流程
 success: function (res) {//登录成功
 if (res.code) {
 var code = res.code;
 wx.getUserInfo({//getUserInfo流程
 success: function (res2) {//获取userinfo成功
 console.log(res2);
 var encryptedData = encodeURIComponent(res2.encryptedData);//一定要把加密串转成URI编码
  var iv = res2.iv;
  //请求自己的服务器
  Login(code,encryptedData,iv);
 }
 })
 
 } else {
 console.log('获取用户登录态失败!' + res.errMsg)
 }
 }
});
}
})
로그인 후 복사

코드로 반환합니다. 서버에서 세션을 얻는 데 사용됩니다. 🎜>키필수 매개변수입니다.

IV: 암호화 알고리즘의 초기 벡터, 암호화된 데이터: 암호화된

문자열.

코드 iv 암호화된 데이터를 서버에 전달

function Login(code,encryptedData,iv){ console.log('code='+code+'&encryptedData='+encryptedData+'&iv='+iv);
 //创建一个dialog
  wx.showToast({
  title: '正在登录...',
  icon: 'loading',
  duration: 10000
  });
  //请求服务器
  wx.request({
  url: API_URL,
  data: {
  code:code,
  encryptedData:encryptedData,
  iv:iv
  },
  method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
  header: {
  'content-type': 'application/json'
  }, // 设置请求的 header
  success: function (res) {
  // success
  wx.hideToast();
  console.log('服务器返回'+res.data);
 
  },
  fail: function () {
  // fail
  // wx.hideToast();
  },
  complete: function () {
  // complete
  }
  })
 }
로그인 후 복사

문서를 읽으면 필요한 UnionId가 암호화된 데이터에 있으므로 서버가 변환하려면 이 정보가 필요하다는 것을 알아야 합니다. UnionId를 구문 분석합니다.

서버 처리 로직

먼저 WeChat 복호화 데모를 다운로드하세요

여기서 선택한 PHP 코드는 데모를 제외한 3개의

class 파일에 넣어주세요. 우리 자신의 프로젝트를 만들고 나중에 호출하세요.

다음은 서버의 처리 흐름에 대한 설명입니다.


WeChat의

인터페이스를 통해 seesionKey를 얻은 다음 sessionKey와 iv를 사용하여 암호화된 데이터 데이터를 해독합니다. UnionID를 얻으려면.

/**
 * 登录
 *
 * @return Response
 */
 public function weixinlogin( $user_id=null )
 {
  global $App_Error_Conf,$Gift_Ids,$Server_Http_Path,$Is_Local,$Test_User,$Good_Vcode,$WeiXin_Xd_Conf;
  $validator_result = input_validator(array('code','iv','encryptedData'));
  if(!empty($validator_result)){
   return response($validator_result);
  }
  $js_code = $_REQUEST['code'];
  $encryptedData = $_REQUEST['encryptedData'];
  $iv = $_REQUEST['iv'];
  $appid = $WeiXin_Xd_Conf['appid'];
  $secret = $WeiXin_Xd_Conf['secret'];
  $grant_type = $WeiXin_Xd_Conf['grant_type'];
  //从微信获取session_key
  $user_info_url = $WeiXin_Xd_Conf['code2session_url'];
  $user_info_url = sprintf("%s?appid=%s&secret=%s&js_code=%s&grant_type=%",$user_info_url,$appid,$secret,$js_code,$grant_type);
  $weixin_user_data = json_decode(get_url($user_info_url));
  $session_key = $weixin_user_data->session_key;
//解密数据
$data = '';
$wxBizDataCrypt = new WXBizDataCrypt($appid, $session_key);
$errCode=$wxBizDataCrypt>decryptData($appid,$session_key,$encryptedData, $iv, $data );
로그인 후 복사
드디어 얻은 데이터는 우리가 해독한 암호화된 데이터이며, 여기에는 UnionId가 포함됩니다.

위 내용은 WeChat 미니 프로그램 개발을 위한 로그인 프로세스 생성 지침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)