အင်တာနက်၏လျင်မြန်စွာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူအသုံးပြုသူများသည်ပလက်ဖောင်းမျိုးစုံအကြား 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 ကိုတည်ဆောက်ရန်ဖြစ်သည်။
ကျွန်ုပ်တို့၏ဥပမာတွင်ပလက်ဖောင်းနှစ်ခုရှိသည်ဟုကျွန်ုပ်တို့ယူဆသည် - ပလက်ဖောင်း 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'); ?>
ထို့နောက် 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 ']); $ 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(); ?>
`callback.php 'ဖိုင်တွင်ပလက်ဖောင်း B ၏ authentication callback ကိုကျွန်ုပ်တို့လုပ်ဆောင်မည်, ခွင့်ပြုချက်ကုဒ်ကိုရယူပါ။ ဤနည်းဖြင့်ကျွန်ုပ်တို့သည်အရင်းအမြစ်များကိုပလက်ဖောင်းခတွင်ရယူနိုင်ပါသည်။
<?php $oauth = new OAuth(CLIENT_ID, CLIENT_SECRET); $access_token = $oauth->getacacesous-getaccestered ($ _ 'get [' 'code']); $ access_token_secret = $ access_token_token ['oauth_token_secret']; // Save_Access_token ($ access_token) အတွက် access token အတွက် access token ကိုသိမ်းဆည်းပါ။ >
တခြားပလက်ဖောင်းကတခြားစာမျက်နှာတွေမှာသိမ်းဆည်းထားတဲ့ 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 ['oauth_token_secret_secret'])); $ တုံ့ပြန်မှု = $ oauth-> fetch (https://platform-b.com/api/api/userinfo '); $ user_info = json_decode ($ တုန့်ပြန် ['တုန့်ပြန်မှု'], // process user information_user_info ($ user_info); >
ပလက်ဖောင်း 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 ['oauth_token_secret_secret'])); အကယ်. ($ oauth-> fetch (https://platporform-b.com/api/veriationtokentoken ') [' response's] == 'OK'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 ကိုမည်သို့တည်ဆောက်ရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်ဤဆောင်းပါးကသင့်အားပိုမိုနားလည်သဘောပေါက်ရန်ကူညီနိုင်သည်။ သင့်တွင်မေးခွန်းများရှိပါက ကျေးဇူးပြု. ဆွေးနွေးရန်မက်ဆေ့ခ်ျတစ်ခုထားပါ။