API:Oturumu kapat
Appearance
From mediawiki.org
This page is a translated version of the page API:Logout and the translation is 88% complete.
Languages:
Bu sayfa MediaWiki Eylem API'si belgelerinin bir parçasıdır.
| MediaWiki Eylem API'si |
|---|
| Temeller |
| Doğrulama |
| Hesaplar ve Kullanıcılar |
| Sayfa İşlemleri |
|
| Ara |
| Geliştirici Araçları |
| Eğitimler |
| g · t · d |
MediaWiki sürümü:
≥ 1.12
Hesaptan oturumu kapatmak için POST isteği. Anahtar olmayan daha önce kullanılan GET isteği bir uyarı verir ve oturumu KAPATMAZ.
Oturumu kapattığınızda oturum açma simgeleri ve diğer tarayıcı çerezleri silinir.
API belgesi
Aşağıdaki belgelendirme, bu sitede (MediaWiki.org) çalışan MediaWiki'nin sürüm öncesi sürümü tarafından otomatik olarak oluşturulan Special: ApiHelp/ logout çıkışıdır.
action=logout
(main | logout)
- This module requires write rights.
- This module only accepts POST requests.
- Source: MediaWiki
- License: GPL-2.0-or-later
Log out and clear session data.
Specific parameters:
Other general parameters are available.
- global
Log the user out from all their devices (rather than their current device only).
- Type: boolean (details)
- token
A "csrf" token retrieved from action=query&meta=tokens
- This parameter is required.
- checkuserclienthints
Client hints data supplied alongside requests to ApiLogout. For internal use only.
Example:
- Log the current user out.
- api.php?action=logout&token=123ABC [open in sandbox]
Örnek
POST isteği
Yanıt
{ }
Örnek kod
Python
#!/usr/bin/python3 """ logout.py MediaWiki API Demos Demo of `Logout` module: Log out and clear session data. MIT License """ importrequests S = requests.Session() URL = "https://en.wikipedia.org/w/api.php" # Step 1: Retrieve login token first PARAMS_0 = { 'action':"query", 'meta':"tokens", 'type':"login", 'format':"json" } R = S.get(url=URL, params=PARAMS_0) DATA = R.json() LOGIN_TOKEN = DATA['query']['tokens']['logintoken'] # Step 2: Send a POST request to login. Using the main account for login is not # supported. Obtain credentials via Special:BotPasswords # (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword PARAMS_1 = { 'action':"login", 'lgname':"your_bot_username", 'lgpassword':"your_bot_password", 'lgtoken':LOGIN_TOKEN, 'format':"json" } R = S.post(URL, data=PARAMS_1) DATA = R.json() # Step 3: GET request to fetch CSRF token PARAMS_2 = { "action":"query", "meta":"tokens", "format":"json" } R = S.get(url=URL, params=PARAMS_2) DATA = R.json() CSRF_TOKEN = DATA['query']['tokens']['csrftoken'] # Step 4: Send a POST request to logout PARAMS_3 = { "action": "logout", "token": CSRF_TOKEN, "format": "json" } R = S.post(URL, data=PARAMS_3) DATA = R.json() print(DATA)
PHP
<?php /* logout.php MediaWiki API Demos Demo of `Logout` module: Log out and clear session data. MIT license */ $endPoint = "https://test.wikipedia.org/w/api.php"; $login_Token = getLoginToken(); // Step 1 loginRequest( $login_Token ); // Step 2 $csrf_Token = getCSRFToken(); // Step 3 logoutRequest( $csrf_Token ); // Step 4 // Step 1: GET request to fetch login token function getLoginToken() { global $endPoint; $params1 = [ "action" => "query", "meta" => "tokens", "type" => "login", "format" => "json" ]; $url = $endPoint . "?" . http_build_query( $params1 ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); $result = json_decode( $output, true ); return $result["query"]["tokens"]["logintoken"]; } // Step 2: POST request to log in. Use of main account for login is not // supported. Obtain credentials via Special:BotPasswords // (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword function loginRequest( $logintoken ) { global $endPoint; $params2 = [ "action" => "login", "lgname" => "bot_user_name", "lgpassword" => "bot_password", "lgtoken" => $logintoken, "format" => "json" ]; $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $endPoint ); curl_setopt( $ch, CURLOPT_POST, true ); curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params2 ) ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); } // Step 3: GET request to fetch CSRF token function getCSRFToken() { global $endPoint; $params3 = [ "action" => "query", "meta" => "tokens", "format" => "json" ]; $url = $endPoint . "?" . http_build_query( $params3 ); $ch = curl_init( $url ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); $result = json_decode( $output, true ); return $result["query"]["tokens"]["csrftoken"]; } // Step 4: POST request to logout function logoutRequest( $csrftoken ) { global $endPoint; $params4 = [ "action" => "logout", "token" => $csrftoken, "format" => "json" ]; $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $endPoint ); curl_setopt( $ch, CURLOPT_POST, true ); curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query( $params4 ) ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_COOKIEJAR, "cookie.txt" ); curl_setopt( $ch, CURLOPT_COOKIEFILE, "cookie.txt" ); $output = curl_exec( $ch ); curl_close( $ch ); echo ( $output ); }
JavaScript
/* logout.js MediaWiki API Demos Demo of `Logout` module: Log out and clear session data. MIT License */ varrequest=require('request').defaults({jar:true}), url="https://en.wikipedia.org/w/api.php"; // Step 1: GET request to fetch login token functiongetLoginToken(){ varparams_0={ action:"query", meta:"tokens", type:"login", format:"json" }; request.get({url:url,qs:params_0},function(error,res,body){ if(error){ return; } vardata=JSON.parse(body); loginRequest(data.query.tokens.logintoken); }); } // Step 2: POST request to log in. // Use of main account for login is not // supported. Obtain credentials via Special:BotPasswords // (https://www.mediawiki.org/wiki/Special:BotPasswords) for lgname & lgpassword functionloginRequest(login_token){ varparams_1={ action:"login", lgname:"your_bot_username", lgpassword:"your_bot_password", lgtoken:login_token, format:"json" }; request.post({url:url,form:params_1},function(error,res,body){ if(error){ return; } getCsrfToken(); }); } // Step 3: GET request to fetch CSRF token functiongetCsrfToken(){ varparams_2={ action:"query", meta:"tokens", format:"json" }; request.get({url:url,qs:params_2},function(error,res,body){ if(error){ return; } vardata=JSON.parse(body); logoutRequest(data.query.tokens.csrftoken); }); } // Step 4: Send a POST request to logout functionlogoutRequest(csrf_token){ varparams_3={ action:"logout", token:csrf_token, format:"json" }; request.post({url:url,form:params_3},function(error,res,body){ if(error){ return; } console.log(body); }); } // Start From Step 1 getLoginToken();
MediaWiki JS
/* logout.js MediaWiki API Demos Demo of `Logout` module: Log out and clear session data. MIT License */ varparams={ action:'logout', format:'json' }, api=newmw.Api(); api.postWithToken('csrf',params).done(function(data){ console.log(data); });
Parametre geçmişi
- v1.30:
tokentanıtıldı
Ek notlar
- MediaWiki 1.34.0-wmf.3 içeren tüm Wikimedia vikileri, bu modülü kullanmak için bir CSRF anahtarı (düzenleme için kullanılanla aynı) gerektirir (mailarchive:mediawiki-api-announce/2019-April/000145.html).
Ayrıca bakınız
Dış bağlantılar
- phab:T25227 — Use token when logging out
- phab:T222626 — Turn logout link into a POST API call with refresh