>  기사  >  백엔드 개발  >  PHP를 사용하여 WeChat 로그인 기능을 구현하는 세부 단계

PHP를 사용하여 WeChat 로그인 기능을 구현하는 세부 단계

PHPz
PHPz원래의
2023-04-04 10:40:532521검색

최근 몇 년간 소셜 네트워크의 성장과 스마트폰의 대중화로 위챗은 사람들의 일상생활에서 없어서는 안 될 부분이 되었습니다. 인터넷 애플리케이션 분야에서 위챗 로그인 기능 구현은 매우 필요한 부분이다. 우리 모두 알고 있듯이 WeChat의 인증 메커니즘은 OAuth 2.0 인증 메커니즘을 사용하므로 WeChat 로그인 기능 구현에 큰 편의성을 제공합니다. 아래에서는 PHP 언어를 통해 WeChat 로그인 기능을 구현하는 방법을 자세히 소개하겠습니다.

1. 위챗 개발 플랫폼 구성

  1. [위챗 오픈 플랫폼](https://open.weixin.qq.com)에 로그인하여 계정 등록을 완료한 후 위챗 오픈 플랫폼 관리 센터에 입장하세요. .
  2. 센터 페이지의 "공식 계정 관리" 메뉴를 클릭하고 접속해야 하는 위챗 공식 계정 정보를 입력하세요.
  3. WeChat Open Platform에서 인증을 받은 후 WeChat Open Platform의 AppID와 AppSecret을 얻어 로그인 코드에 기록해야 합니다. [WeChat 오픈 플랫폼](https://open.weixin.qq.com)에 로그인하고 관리 센터에 들어가서 "모바일 애플리케이션"을 선택한 후 "모바일 애플리케이션 추가"를 선택하세요.
  4. 모바일 애플리케이션의 기본 정보를 입력하고 검토를 위해 제출하세요. 검토 및 승인 후에 AppID와 AppSecret을 얻을 수 있습니다.

2. PHP 코드 구현

  1. WeChat 로그인 링크 구축
<?php
$appid = “your_appid”; //appid
$redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;); //登录成功回调网址,请确保此地址跟公众号设置的授权回调页面路径一致。
$scope = &#39;snsapi_userinfo&#39;; //snsapi_base 或 snsapi_userinfo
$url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
header(&#39;Location:&#39; . $url);
exit;
?>

위 코드에서는 $appid, $redirect_uri 및 $scope 매개변수를 입력해야 합니다. 그 중 $appid는 WeChat 오픈 플랫폼에서 할당한 AppID이고, $redirect_uri는 사용자 인증 후의 콜백 URL로, 공식 계정에서 설정한 인증 콜백 페이지와 일치해야 합니다. snsapi_userinfo의 경우 전자는 사용자의 openid만 얻을 수 있고, 후자는 사용자의 기본 정보만 얻을 수 있습니다.

  1. Get access_token 및 openid
<?php
$appid = &#39;your_appid&#39;; //appid
$secret = &#39;your_appsecret&#39;; //appsecret
$code = $_GET[&#39;code&#39;]; //网页授权code
$access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;; //获取access_token和openid的链接
$access_token = file_get_contents($access_token_url);
$access_token_arr = json_decode($access_token, true); //将返回的json字符串转为数组
?>

이 코드에서는 인증 성공 후 사용자가 반환한 코드를 전달한 다음 해당 코드를 WeChat 서버에 전달하여 access_token 및 openid를 얻습니다.

  1. 사용자 기본 정보 가져오기
<?php
$access_token = $access_token_arr[&#39;access_token&#39;];
$openid = $access_token_arr[&#39;openid&#39;];
$user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;; //获取用户信息的链接
$user_info = file_get_contents($user_info_url);
$user_info_arr = json_decode($user_info, true); //将返回的json字符串转为数组
?>

이 코드에서는 access_token 및 openid를 사용하여 사용자 닉네임, 성별, 도시 등과 같은 사용자 기본 정보를 가져옵니다. 사용자의 기본 정보를 얻기 전에 사용자가 snsapi_userinfo에 대한 범위를 승인했는지 확인해야 합니다.

  1. 로그인 예제 코드 완성
<?php
if (!isset($_GET[&#39;code&#39;]) || empty($_GET[&#39;code&#39;])) {
    //第一步:用户同意授权,获取code
    $appid = &#39;your_appid&#39;;
    $redirect_uri = urlencode(&#39;http://yourdomain.com/login.php&#39;);
    $scope = &#39;snsapi_userinfo&#39;;
    $url = &#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=&#39; . $appid . &#39;&redirect_uri=&#39; . $redirect_uri . &#39;&response_type=code&scope=&#39; . $scope . &#39;&state=STATE#wechat_redirect&#39;;
    header(&#39;Location:&#39; . $url);
    exit;
} else {
    //第二步:通过code换取网页授权access_token以及openid,再获取用户信息
    $appid = &#39;your_appid&#39;;
    $secret = &#39;your_appsecret&#39;;
    $code = $_GET[&#39;code&#39;];
    $access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39; . $appid . &#39;&secret=&#39; . $secret . &#39;&code=&#39; . $code . &#39;&grant_type=authorization_code&#39;;
    $access_token = file_get_contents($access_token_url);
    $access_token_arr = json_decode($access_token, true);
    $access_token = $access_token_arr[&#39;access_token&#39;];
    $openid = $access_token_arr[&#39;openid&#39;];
    $user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39; . $access_token . &#39;&openid=&#39; . $openid . &#39;&lang=zh_CN&#39;;
    $user_info = file_get_contents($user_info_url);
    $user_info_arr = json_decode($user_info, true);

    //TODO:在这里可以将用户信息存入数据库,供之后使用
    //......
}
?>

3. 요약

위에서 언급한 것처럼 몇 가지 간단한 단계만 거치면 PHP 언어를 사용하여 WeChat 로그인 기능을 구현할 수 있습니다. 이 글에서는 WeChat 로그인의 가장 기본적인 구현 방법만 소개합니다. 실제 적용에서는 사용자 권한 판단, 인증 유효 기간 등 주의가 필요한 문제가 더 많습니다. 이 글이 WeChat 로그인을 구현해야 하는 개발자에게 도움이 되기를 바랍니다.

위 내용은 PHP를 사용하여 WeChat 로그인 기능을 구현하는 세부 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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