jQuery 체크 워드프레스_logged_in cookie
jquery를 사용하여 wordpress cookie wordpress_press_in을 체크하는 방법이 있습니까?
저는 cloudflare 풀캐시를 사용하고 있기 때문에 사용자가 로그인하고 있는지 확인할 수 있는 방법은 이 쿠키 이외에는 없습니다.jquery를 사용하여 읽으려고 했지만 보호되고 보이지 않는 것 같습니다.PHP를 통해서만 액세스 할 수 있습니다.
지금 바로 읽을 수 있는 방법은 다음과 같습니다.
$logged_in = 'no';
if (count($_COOKIE)) {
foreach ($_COOKIE as $key => $val) {
if (preg_match("/wordpress_logged_in/i", $key)) {
$logged_in = 'yes';
}
}
}
어쩌면 단순히 jquery로 확인할 수 있는 가능성이 있을지도 모릅니다만, 저는 방법을 찾지 못했습니다.
도와 줘서 고마워.
다음 이름의 워드프레스 쿠키에 액세스할 수 없습니다.wordpress_logged_in사용.js/jquery다음과 같이 플래그가 붙어 있습니다.
보안 쿠키는 HTTPS 프로토콜을 통해 암호화된 요청으로만 서버로 전송됩니다...사이트 간 스크립팅(XSS) 공격을 방지하기 위해 HttpOnly 쿠키는 JavaScript의 Document.cookie API에 액세스할 수 없으며 서버에만 전송됩니다.
그러나 3.0 워드프레스는 사용자가 로그인 할 때 wp-settings-{time}-[UID]라는 이름의 쿠키를 하나 더 추가합니다.
또한 WordPress는 몇 개의 wp-settings-{time}-[UID] 쿠키를 설정합니다.끝에 있는 번호는 사용자 데이터베이스 테이블의 개별 사용자 ID입니다.이것은 관리 인터페이스 및 메인사이트 인터페이스의 뷰를 커스터마이즈하기 위해서 사용됩니다.
그리고 이 쿠키는 다음 방법으로 얻을 수 있습니다.js/jquery쿠키에서 사용자 ID를 얻을 수도 있습니다.
다음은 사용자가 로그인한 경우 쿠키를 가져오고 확인하는 js 함수입니다.
function getLoggedInCookie() {
var cookie = document.cookie.indexOf('wp-settings-time') !== -1;
if(cookie){
alert('Logged in');
}else{
alert('Not User');
}
}
getLoggedInCookie();
jQuery 솔루션은 Wordpress 테마/플러그인에 Cookie 플러그인을 포함시켜 사용하려고 합니다(일부 수정이 필요할 수 있습니다).
주의:
제공된 코드는 다음과 같은 독립 WordPress 함수 및 엔드포인트를 사용하는 로그인 양식과 함께 작동합니다.http://{website-name}/wp-admin/또는http://{website-name}/wp-login.php. 서드파티 플러그인은 cookie를 설정할 수 없습니다.wp-settings-{time}-[UID].
사용자가 로그인했는지 여부만 알고 싶은 경우 본문 요소에 '로그인' 클래스가 있는지 확인할 수 있습니다.
jQuery( 'body' ).hasClass( 'logged-in' )
WordPress는 사용자가 로그인한 경우 이 클래스를 본문 요소에 추가합니다.
Ajax 요청을 생성하여 사용자가 로그인했는지 확인할 수 있습니다.
기능하고 있습니다.php:
function ajax_check_user_logged_in() {
echo is_user_logged_in()?'yes':'no';
die();
}
add_action('wp_ajax_is_user_logged_in', 'ajax_check_user_logged_in');
add_action('wp_ajax_nopriv_is_user_logged_in', 'ajax_check_user_logged_in');
function load_my_scripts()
{
wp_localize_script('my-ajax-handle', 'the_ajax_script', array('ajaxurl' => admin_url('admin-ajax.php')));
}
add_action('wp_enqueue_scripts', 'load_my_scripts');
js:
var data = {
action: 'is_user_logged_in'
};
jQuery.post(the_ajax_script.ajaxurl, data, function(response) {
if(response == 'yes') {
// user is logged in
} else {
// user is not logged in
}
});
비슷한 토픽은 이쪽
이 솔루션이 효과적입니다.또는 로그인 액션에 액션을 추가하고 다음 명령을 사용하여 파일용 js var를 생성할 수 있습니다.wp_localize_script().
다른 답변에서도 언급했듯이wp_localize_script()편리한 기능입니다.특히 다음과 같은 것을 사용합니다.
wp_localize_script(
'site-js',
'siteVars',
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'isMobile' => (wp_is_mobile() ? true : false),
'isHome' => (is_home() || is_front_page() ? true : false),
'isSingle' => (is_single() ? true : false),
'isLogged' => (is_user_logged_in() ? true : false),
)
);
다음 할 수 .siteVars.isLogged올바른 부울 값을 반환합니다.를 이이 your your your your place place 、 place place place place place place place place place place 。functions.php이 파일을 함수에 넣고 스크립트를 큐잉한 후 바로 실행하는 것이 좋습니다.
js-cookie와 같은 스크립트를 사용할 수 있습니다. WP를 통해 쿠키 데이터를 설정/읽기 위해 여러 번 사용하였습니다.하지만 첫 번째 방법은wp_localize_script()마마더더더신신신신을을요요요요요요요 。쿠키 데이터가 보호되면 JS 솔루션이 작동하지 않을 수 있습니다.PHP php php php php php php php php php php php php 。사용자 역할 및 사용자 정보를 가져오도록 확장할 수도 있습니다.
https://developer.wordpress.org/reference/functions/is_user_logged_in/
https://codex.wordpress.org/Function_Reference/wp_localize_script
에 액세스 할 수 있는 경우.HTACCESS 파일에 이 코드를 추가합니다.
Wordpress 기본 logged in cookie가 존재하는지, 존재하는지 여부를 확인하고 cookie "hello"를 설정합니다.
"wordpress_logged_in" cookie가 존재하지 않는 것을 검출하면 "hello" cookie가 삭제되거나 만료됩니다.
<If "%{HTTP_COOKIE} =~ /wordpress_logged_in/">
Header add Set-Cookie "hello;secure;path=/"
</If>
<If "%{HTTP_COOKIE} !~ /wordpress_logged_in/">
Header add Set-Cookie "hello;secure;Expires=Wed, 21 Oct 1963 07:28:00 GMT"
</If>
httpOnly는 "hello" cookie에 설정되어 있지 않기 때문에 javascript로 접근할 수 있습니다.
언급URL : https://stackoverflow.com/questions/48511579/jquery-check-wordpress-logged-in-cookie
'programing' 카테고리의 다른 글
| 갤러리 쇼트코드에서_post_thumbnail 제외 (0) | 2023.03.26 |
|---|---|
| npm init react-app 사용 시 시작 후 즉시 도커 컨테이너가 빠져나갑니다. (0) | 2023.03.26 |
| Wordpress JsonAPI - /wp-json/을(를) 이 서버에서 찾을 수 없습니다. (0) | 2023.03.26 |
| 계산된 열을 사용하여 동일한 뷰에서 다른 열을 계산하는 방법 (0) | 2023.03.26 |
| 이 Rails JSON 인증 API(Gand 사용)는 안전한가요? (0) | 2023.03.26 |