최근 몇 년 동안 WeChat 미니 프로그램은 전 세계적으로 인기를 얻었으며 많은 기업과 개인 개발자가 선택하는 플랫폼이 되었습니다. 미니 프로그램을 개발하다 보면 세션 문제, 즉 미니 프로그램에 사용자 로그인 상태를 저장하는 방법에 대한 문제가 자주 발생합니다. 이 문제는 웹사이트 개발자들에게는 낯설지 않지만 작은 프로그램에서는 조금 다릅니다. 이 기사에서는 PHP를 사용하여 WeChat 미니 프로그램의 세션 문제를 해결하는 방법을 소개합니다.
1. 미니 프로그램 로그인 프로세스 개요
미니 프로그램의 로그인 프로세스는 웹사이트의 로그인 프로세스와 유사하며 다음 단계로 나뉩니다.
- 사용자가 미니 프로그램을 열고 로그인합니다.
- 사용자가 계정 번호와 비밀번호를 입력하고 "로그인" 버튼을 클릭합니다.
- 미니 프로그램의 프런트 엔드가 미니 프로그램의 백엔드 서버로 계정 번호와 비밀번호를 보냅니다. 미니 프로그램의 백엔드는 계좌번호와 비밀번호를 받아 사용자의 신원이 맞는지 확인합니다.
- 신원 확인에 성공하면 사용자는 세션 정보를 서버에 저장하고 세션 ID를 다시 앞쪽으로 보냅니다. end;
- 프런트 엔드는 세션 ID를 저장하고 각 요청과 함께 세션 ID를 ID 인증으로 가져옵니다.
- 백엔드는 세션 ID가 유효한지 확인하고 유효한 경우 요청 데이터를 반환합니다.
- 2. WeChat 미니 프로그램의 세션 문제
웹사이트 개발 시 사용자 로그인 상태를 저장하기 위해 쿠키나 세션 기술을 사용할 수 있지만 미니 프로그램에서는 이러한 기술을 사용할 수 없습니다. WeChat 애플릿은 로그인 상태를 저장하기 위해 웹사이트 개발 시 쿠키나 세션과 같은 메커니즘을 제공하지 않지만 토큰과 유사한 메커니즘을 사용합니다. 사용자의 신원을 성공적으로 확인한 후 미니 프로그램의 백엔드는 토큰 문자열을 생성하여 이를 프론트 엔드에 반환해야 합니다. 프론트 엔드는 토큰을 로컬에 저장하고 각 요청 시 백엔드에 신원 인증 정보로 토큰을 보내야 합니다. .
미니 프로그램은 다른 기기에서 동일한 계정으로 로그인할 수 있으므로 이 토큰은 시기적절해야 하며 만료 후 다시 로그인해야 합니다. 동시에, 다른 사람이 토큰을 위조하는 것을 방지하기 위해 토큰을 암호화하고 해독해야 합니다.
3. WeChat 미니 프로그램에서 PHP가 세션 문제를 처리하는 방법
토큰 생성 및 암호화
- 토큰을 생성하는 방법에는 여러 가지가 있습니다. 예를 들어, 타임스탬프와 사용자 ID를 사용하여 문자열을 연결할 수 있습니다. 암호화하세요. PHP에서는 openssl_encrypt 및 openssl_decrypt 함수를 사용하여 AES 암호화 및 암호 해독을 수행할 수 있습니다.
토큰 생성 코드:
1 2 3 4 5 6 7 8 9 10 | function generateToken( $userId )
{
$time = time();
$str = $userId . '|' . $time ;
$key = 'your_secret_key' ;
$iv = 'your_iv' ;
$encrypted = openssl_encrypt( $str , 'AES-256-CBC' , $key , 0, $iv );
return $encrypted ;
}
|
로그인 후 복사
토큰 암호 해독 코드:
1 2 3 4 5 6 7 8 | function decryptToken( $token )
{
$key = 'your_secret_key' ;
$iv = 'your_iv' ;
$decrypted = openssl_decrypt( $token , 'AES-256-CBC' , $key , 0, $iv );
return $decrypted ;
}
|
로그인 후 복사
미니 프로그램 로그인 처리
미니 프로그램 프런트엔드는 확인을 위해 로그인 정보를 백엔드 서버로 보내야 합니다. 토큰은 프런트엔드로 반환됩니다. 프런트엔드는 토큰을 로컬에 저장해야 합니다.
미니 프로그램 로그인 코드:
1 2 3 4 5 6 7 8 9 10 11 12 | wx.request({
url: 'your_login_url' ,
method: 'POST' ,
data: {
username: 'your_username' ,
password: 'your_password'
},
success: function (res) {
var token = res.data.token;
wx.setStorageSync( 'token' , token);
}
});
|
로그인 후 복사
토큰 확인 및 암호 해독
백엔드는 각 요청에서 토큰이 유효한지 확인하고 요청 데이터를 반환해야 합니다. 토큰 검증 시에는 먼저 토큰을 복호화한 후 토큰에 저장된 시간이 유효 범위 내에 있는지 확인해야 합니다.
토큰 인증 코드:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function verifyToken()
{
$token = $_SERVER [ 'HTTP_TOKEN' ];
$key = 'your_secret_key' ;
$iv = 'your_iv' ;
$decrypted = openssl_decrypt( $token , 'AES-256-CBC' , $key , 0, $iv );
list( $userId , $time ) = explode ( '|' , $decrypted );
if (time() - $time > 3600) {
return false;
}
$query = mysql_query( "SELECT * FROM `user` WHERE `id` = '$userId'" );
if ( $row = mysql_fetch_array( $query )) {
return true;
} else {
return false;
}
}
|
로그인 후 복사
각 요청에서 토큰 정보는 HTTP 요청 헤더에 추가되어야 합니다:
1 2 3 4 5 6 7 8 9 10 11 | wx.request({
url: 'your_api_url' ,
method: 'POST' ,
header: {
'content-type' : 'application/json' ,
'token' : wx.getStorageSync( 'token' )
},
success: function (res) {
console.log(res.data);
}
});
|
로그인 후 복사
4. 요약
이 글에서는 PHP에서 WeChat 애플릿의 세션 문제를 처리하는 방법을 소개합니다. 미니 프로그램에는 웹사이트 개발 시 로그인 상태를 저장하는 쿠키나 세션과 같은 메커니즘이 없지만 토큰과 유사한 방식으로 구현할 수 있습니다. 미니 프로그램의 로그인 과정에서는 사용자 인증, 세션 관리, 요청 인증 등의 기능을 구현하기 위해 프런트엔드와 백엔드의 협력이 필요하다. 이 글의 서론을 통해 독자들은 PHP에서 작은 프로그램 세션 문제를 처리하는 방법을 터득했다고 믿으며, 모든 사람에게 도움이 되기를 바랍니다.
위 내용은 PHP가 WeChat 미니 프로그램에서 세션 문제를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!