လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Oauth သည် PHP မှအကောင်အထည်ဖော်ခြင်း OAUTH: Cross-platform sso login ဖြေရှင်းချက်ကိုတည်ဆောက်ခြင်း

Oauth သည် PHP မှအကောင်အထည်ဖော်ခြင်း OAUTH: Cross-platform sso login ဖြေရှင်းချက်ကိုတည်ဆောက်ခြင်း

M66 2025-06-13

Oauth သည် PHP မှအကောင်အထည်ဖော်ခြင်း OAUTH: Cross-platform sso login ဖြေရှင်းချက်ကိုတည်ဆောက်ခြင်း

အင်တာနက်၏လျင်မြန်စွာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူအသုံးပြုသူများသည်ပလက်ဖောင်းမျိုးစုံအကြား log in ပြောင်းရန်နှင့် log in ဝင်ရန်များများအတွက်ပိုမိုများပြားလာသည်။ သို့သော်၎င်းသည်အထူးသဖြင့် Cross-Platform system-on (SSO) ကိုမည်သို့အကောင်အထည်ဖော်ရန်အတွက်စိန်ခေါ်မှုများကိုတင်ပြသည်။ Oauth (ပွင့်လင်းသောခွင့်ပြုချက်) သည်ဤပြ problem နာကိုလုံခြုံပြီးထိရောက်သောနည်းပညာတစ်ခုအဖြစ်ဤပြ problem နာကိုအကောင်းဆုံးဖြေရှင်းနည်းဖြစ်သည်။

Oauth သည်အသုံးပြုသူများအား၎င်းတို့၏အထောက်အထားများကိုတိုက်ရိုက်မျှဝေခြင်းမပြုဘဲ၎င်းတို့၏အရင်းအမြစ်များကို 0 င်ရောက်နိုင်ရန်အတွက် third-party app များကိုခွင့်ပြုရန်ခွင့်ပြုထားသောပွင့်လင်းသောစံသတ်မှတ်ချက်တစ်ခုဖြစ်သည်။ Oauth မှတစ်ဆင့်အသုံးပြုသူများသည်တစ်ပြိုင်နက်တည်း ဝင်ရောက်. login ဖြစ်စဉ်ကိုရိုးရှင်းအောင်လုပ်ရန်အလိုအလျောက်ဝင်ရောက်နိုင်သည်။

ဤဆောင်းပါးသည် PHP PHP ကို ​​အသုံးပြု. Oauth protocol ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုမိတ်ဆက်ပေးပြီးရိုးရှင်းသော Cross-Platform SSO Solution ကိုတည်ဆောက်ရန်ဖြစ်သည်။

1 ။ Oauth client ကို configure

ကျွန်ုပ်တို့၏ဥပမာတွင်ပလက်ဖောင်းနှစ်ခုရှိသည်ဟုကျွန်ုပ်တို့ယူဆသည် - ပလက်ဖောင်း A နှင့် Platform B. ပထမ ဦး စွာကျွန်ုပ်တို့သည်တစ် ဦး နှင့်တစ် ဦး ဆက်သွယ်နိုင်ရန်စင်မြင့်တစ်ခုစီတွင် Oauth Client များတပ်ဆင်ရန်လိုအပ်သည်။ ပလက်ဖောင်းတစ်ခုတွင် Oauth client ကိုလုပ်ဆောင်နိုင်စွမ်းကိုအကောင်အထည်ဖော်ရန် PHP ၏ Oauth extension ကိုအသုံးပြုမည်။

ပထမ ဦး စွာပလက်ဖောင်း A တွင်လျှောက်လွှာကိုမှတ်ပုံတင်ရန်နှင့် clientization id နှင့် client key ကိုရယူရန်သေချာအောင်လုပ်ပါ။

နောက်တစ်ခုက Oauth.php 'ဆိုတဲ့ဖိုင်တစ်ခုကိုကျွန်တော်တို့ဖန်တီးဖို့ Oauth authentication process ကို platform b. နဲ့ကိုင်တွယ်ဖြေရှင်းဖို့ဆိုတဲ့ဖိုင်တစ်ခုကိုဖန်တီးခဲ့တယ်။ ဒီဖိုင်မှာ Oauth extension ကိုမိတ်ဆက်ပေးဖို့လိုတယ်။

<?php
require_once 'OAuth/OAuth.php';
?>

ထို့နောက်ကျွန်ုပ်တို့သည်ပလက်ဖောင်းတွင်မှတ်ပုံတင်ထားသော Oauth-client အထောက်အထားများအတွက် authentication URL ကိုသတ်မှတ်သည်။

<?php
define('AUTH_URL', 'https://platform-b.com/oauth/authorize');
define('CLIENT_ID', 'YOUR_CLIENT_ID');
define('CLIENT_SECRET', 'YOUR_CLIENT_SECRET');
?>

2 ။ oauth ခွင့်ပြုချက် URL ကိုထုတ်လုပ်ပါ

ထို့နောက် oauth ခွင့်ပြုချက် URL ကိုထုတ်လုပ်ရန် function တစ်ခုကိုကျွန်ုပ်တို့သတ်မှတ်သည်။ ဤလုပ်ဆောင်ချက်သည် redirect URL ကို parameter တစ်ခုအဖြစ်လက်ခံပြီး Oauth extension ကို အသုံးပြု. ပလက်ဖောင်း B သို့ခွင့်ပြုချက်တောင်းခံမှုကိုပေးပို့လိမ့်မည်။

<?php
function generate_auth_url($redirect_url) {
    $oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
    $request_token = $oauth-> GetRequesttoken (Auth_URL, $ redirect_URL);
    $ auth_Url = $ oauth-> getauthorizeurl ($ anness_token [token &#39;]);
    $ auth_url ပြန်လာ;
}
>

ပလက်ဖောင်းတစ်ခု၏ login စာမျက်နှာတွင် `Generate_Auth_Url`URL`URL`. function ကိုအခွင့်အာဏာပေးရန်နှင့်အသုံးပြုသူကိုထို URL သို့ redirect ဟုခေါ်သည်။

<?php
$redirect_url = 'https://platform-a.com/callback.php';
$auth_url = generate_auth_url($redirect_url);
header('Location: ' . $auth_url);
exit();
?>

3 ။ authentication callbacks ကိုင်တွယ်

`callback.php 'ဖိုင်တွင်ပလက်ဖောင်း B ၏ authentication callback ကိုကျွန်ုပ်တို့လုပ်ဆောင်မည်, ခွင့်ပြုချက်ကုဒ်ကိုရယူပါ။ ဤနည်းဖြင့်ကျွန်ုပ်တို့သည်အရင်းအမြစ်များကိုပလက်ဖောင်းခတွင်ရယူနိုင်ပါသည်။

<?php
$oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
$access_token = $oauth->getacacesous-getaccestered ($ _ &#39;get [&#39; &#39;code&#39;]);
$ access_token_secret = $ access_token_token [&#39;oauth_token_secret&#39;];

// Save_Access_token ($ access_token) အတွက် access token အတွက် access token ကိုသိမ်းဆည်းပါ။
>

4 ။ Platform B ၏အရင်းအမြစ်များကိုရယူရန် Access Tkens ကိုသုံးပါ

တခြားပလက်ဖောင်းကတခြားစာမျက်နှာတွေမှာသိမ်းဆည်းထားတဲ့ Access token ကို Platform b ရဲ့ API ကိုသုံးပြီးအသုံးပြုသူအချက်အလက်ကိုရဖို့သုံးနိုင်တယ်။

<?php
$oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
$access_token = get_access_token_from_database();
$oauth-> Settelopment ($ access_token [oauth]], $ access_token [&#39;oauth_token_secret_secret&#39;]));
$ တုံ့ပြန်မှု = $ oauth-> fetch (https://platform-b.com/api/api/userinfo &#39;);
$ user_info = json_decode ($ တုန့်ပြန် [&#39;တုန့်ပြန်မှု&#39;],

// process user information_user_info ($ user_info);
>

5 ။ ဝင်ရောက်ခွင့်ကိုတိုကင်နှင့်အသုံးပြုသူအချက်အလက်ကိုပြန်ပို့ပါ

ပလက်ဖောင်း B ၏ API တွင်အသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုရန်နှင့်သက်ဆိုင်ရာအရင်းအမြစ်အချက်အလက်များကိုပြန်ပို့ရန်အတွက် access tokens ကိုသုံးနိုင်သည်။

<?php
$oauth = new OAuth(CLIENT_ID, CLIENT_SECRET);
$access_token = get_access_token_from_database();
$oauth-> Settelopment ($ access_token [oauth]], $ access_token [&#39;oauth_token_secret_secret&#39;]));

အကယ်. ($ oauth-> fetch (https://platporform-b.com/api/veriationtokentoken &#39;) [&#39; response&#39;s] == &#39;OK&#39;s]
    $ user_info = get_user_info ();
    echo json_entode ($ user_info);
}
>

အကျဉ်းချုပ်

အထက်ပါအဆင့်များမှတဆင့် Oauth အပေါ် အခြေခံ. Cross-Platform SSO Solution ကိုအောင်မြင်စွာအကောင်အထည်ဖော်နိုင်ခဲ့သည်။ Platform A သို့ဝင်ရောက်ပြီးနောက်အသုံးပြုသူများသည် Platform B သို့အလိုအလျောက် ဝင်ရောက်. 0 င်ရောက်နိုင်သည်။ ပလက်ဖောင်းနှစ်ခုအကြားသက်ဆိုင်ရာအသုံးပြုသူသတင်းအချက်အလက်များကိုမျှဝေနိုင်သည်။

ဤဆောင်းပါးသည် PHP ကို ​​အသုံးပြု. Oauth နှင့်ထိရောက်သော Cross-platform sso system ကိုမည်သို့တည်ဆောက်ရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးကသင့်အားပိုမိုနားလည်သဘောပေါက်ရန်ကူညီနိုင်သည်။ သင့်တွင်မေးခွန်းများရှိပါက ကျေးဇူးပြု. ဆွေးနွေးရန်မက်ဆေ့ခ်ျတစ်ခုထားပါ။