user_id만 사용하여 Wordpress에 로그인하는 방법
Wordpress 사용자만 해당 wp 사용자로 기록할 수 있는 방법이 있습니까?아이디?
사용자에게 확인 메일을 보냅니다.웹사이트에 접속하기 위해 지정된 링크를 클릭하면 사용자가 로그인해야 하기 때문에 사용자가 로그인한 후 헤더 리다이렉트를 해야 합니다.
php에서 사용할 수 있는 wordpress에서 제공하는 php 함수가 필요합니다.실장 방법에 대해서도 상세하게 알려주시겠습니까?
사용자 자동 로그 기능(테스트되지 않음)은 다음과 같습니다.
function auto_login() {
if (!is_user_logged_in()) {
//determine WordPress user account to impersonate
$user_login = 'guest';
//get user's ID
$user = get_userdatabylogin($user_login);
$user_id = $user->ID;
//login
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action('wp_login', $user_login);
}
}
wp_login hook에서 2개의 파라미터를 전달해야 합니다.Wp codex 참조
wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login, $user );
전송한 모든 링크와 해당 임시 인증 코드를 저장하는 별도의 테이블을 만든 후 해당 임시 인증 코드와 이메일을 URL 매개 변수로 전달합니다.
사용자가 이메일을 클릭하자마자 리디렉션할 수 있도록 임시 인증 코드를 기반으로 사용자를 검증하는 코드를 작성합니다.
WordPress 플러그인의 temporary-login-without-password는 사용자 코멘트에 따라 고유한 해시/키를 구현합니다.
오픈 소스 코드는, https://plugins.trac.wordpress.org/browser/temporary-login-without-password/trunk/public/class-wp-temporary-login-without-password-public.php 를 참조해 주세요.
public function init_wtlwp() {
if ( ! empty( $_GET['wtlwp_token'] ) ) {
$wtlwp_token = sanitize_key( $_GET['wtlwp_token'] ); // Input var okay.
$users = Wp_Temporary_Login_Without_Password_Common::get_valid_user_based_on_wtlwp_token( $wtlwp_token );
$temporary_user = '';
if ( ! empty( $users ) ) {
$temporary_user = $users[0];
}
if ( ! empty( $temporary_user ) ) {
$temporary_user_id = $temporary_user->ID;
그건 정말 나쁜 아이디어야.다음 사항을 고려하십시오.사용자 A 및 B에게 다음 링크가 포함된 이메일을 보냅니다.
http://wordpressblog.exp/fromemail?user_id=A;
http://wordpressblog.exp/fromemail?user_id=B;
사용자 B가 사용자 ID를 A의 user_id로 바꾸면 사용자 A의 계정에 액세스할 수 있습니다.이러한 방법으로 사용자를 로깅하기 위한 해시를 구성하는 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/10041583/how-to-log-a-user-in-to-wordpress-using-only-their-user-id
'programing' 카테고리의 다른 글
AngularJS: 송신과 서버 응답 사이의 모든 폼 제어 비활성화 (0) | 2023.03.07 |
---|---|
Angular UI 라우터가 비동기/대기 기능을 사용할 때 해결 기능을 처리하지 않습니까? (0) | 2023.03.02 |
JSON 유형 내의 어레이 요소를 쿼리합니다. (0) | 2023.03.02 |
각도에서의 $timeout not defined 오류JS 앱 (0) | 2023.03.02 |
스파게티 코드의 특징은 무엇입니까? (0) | 2023.03.02 |