Oauth သည်အသုံးပြုသူများအရင်းအမြစ်များကိုလုံလုံခြုံခြုံသုံးစွဲရန်တတိယပါတီအက်ပလီကေးရှင်းများကိုခွင့်ပြုသည့်ပွင့်လင်းသောစံတစ်ခုဖြစ်သည်။ Oauth2 တွင်ခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်သည်အသုံးအများဆုံးခွင့်ပြုချက်အမျိုးအစားဖြစ်သည်။ ဤဆောင်းပါးသည် PHP ရှိခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာကို PHP ရှိခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာကိုမည်သို့တည်ဆောက်ရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။
ခွင့်ပြုချက်ကုဒ်အတွက်ခွင့်ပြုချက်လုပ်ငန်းစဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
ပထမ ဦး စွာလူကြိုက်များသော PHP OAUTH2 စာကြည့်တိုက်တစ်ခုကိုထည့်သွင်းပါ။ တေးရေးဆရာမှတစ်ဆင့်တပ်ဆင်နိုင်သောစာကြည့်တိုက် "BSaffer / Oauth2-server-server-server-server-php" ကိုကျွန်ုပ်တို့သုံးမည်။
တေးရေးဆရာ Bsaffer / Oauth2 ဆာဗာ - PHP လိုအပ်သည်
နောက်တစ်ခုက PHP မှာ `index.php phot file ကိုကျွန်တော်တို့ရဲ့ခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာလို့ခေါ်တယ်။
<?php
require_once 'vendor/autoload.php';
// ဖန်တီး PDO ဥပမာ connection database
$dsn = "mysql:dbname=testdb;host=localhost";
$username = "root";
$password = "";
$pdo = new PDO($dsn, $username, $password);
// ဖန်တီး OAuth2 repository ဥပမာ
$storage = new OAuth2StoragePdo($pdo);
// ဖန်တီး授权服务器实例
$server = new OAuth2Server($storage);
// ထောက်ခံခွင့်ပြုချက်အမျိုးအစားများထည့်ပါ
$server-> addgranttype (New Oauth2GranttypeacepeAndeCode ($ သိုလှောင်မှု));
// process လုပ်ပိုင်ခွင့်တောင်းဆိုမှု $ တောင်းဆိုမှု $ request = oauth2 untoquest :: Creatchmglobals ();
$ တုန့်ပြန် = အသစ် oauth2response ();
if (! $ server-> RelalTatareAuteizerizerequest ($ တောင်းဆိုမှု, $ တုံ့ပြန်မှု))
$ တုံ့ပြန်မှု -> Send ();
သေသည် ();
}
// ခွင့်ပြုချက်စာမျက်နှာကိုပြပါ (အချည်းနှီး ($ _ post))
ထွက်ပေါက်('
<form method="post">
<label for="username">အသုံးပြုသူအမည်:</label>
<input type="text" id="username" name="username"><br><br>
<label for="password">စကားဝှက်</label>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="ခွင့်ပြု">
</form>
');
}
$ is_authorized = ($ _post ['username'] == 'admin' && $ _post ['password'] == 'admin') == 'admin' '==' adder '==' 'password'] == 'adder' == '_POST') == 'admin' '==' adder ')
$ ဆာဗာ -> handleauthorizerizerquest ($ တောင်းဆိုမှု, $ တုံ့ပြန်မှု, $ is_authorized);
လျှင် ($ is_authorized) {
$ တုံ့ပြန်မှု -> Send ();
} အခြား
ECHO 'ခွင့်ပြုချက်မအောင်မြင်ပါ,
}
ယခုကျွန်ုပ်တို့သည် client information ကိုသိုလှောင်ရန်အတွက်ဒေတာဘေ့စ်စားပွဲတစ်ခုဖန်တီးရန်လိုအပ်သည်။ MySQL တွင်အောက်ပါ SQL ကြေညာချက်ကို Execute:
Creat `Oauth_clients` (
`client_id`id`id` varchar (80) Collf8_unicode_ci NULL မဟုတ်ဘူး။
`client_secret` varchar (80) collf8_unicode_ci NURLING NURT မလုပ်ပါ။
`redirect_uri`` varchar (2000) Collfe Utf8_unicode_ci null nuld '',
`WANT_TYPES` TARCHAR (80) Collatu Utf8_unicode_ci default NULL,
`Scope` varchar (100) Collfe Utf8_unicode_ci default NURL,
`` user_id` `varchar (80) Collatch utf8_unicode_ci default NURL,
မူလတန်း (`client_id`)
);
အောက်ပါ URL သို့ခွင့်ပြုရန်:
http: //localhost/index.php? Response_Type = code & client_id = your_clien_id & redirect_URI = your_redirect_URI & scope = scope
အသုံးပြုသူအမည်နှင့်လျှို့ဝှက်နံပါတ်ကိုခွင့်ပြုချက်စာမျက်နှာရှိအသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုရိုက်ထည့်ပါ။ အသုံးပြုသူရဲ့ authentication ဟာအောင်မြင်မယ်ဆိုရင်ဆာဗာသည်ခွင့်ပြုချက်ကုဒ်ကိုပြန်ပို့ပေးလိမ့်မည်။
Curl သို့မဟုတ်အခြား http client များမှတစ်ဆင့်ဝင်ရောက်ခွင့်အမှတ်အသားကိုတောင်းခံရန်ရရှိသောခွင့်ပြုချက်ကုဒ်ကိုသုံးပါ။
curl -x post -d "Authorizype = ခွင့်ပြုချက် = Concode & Computer = adderization_code & chystracy_id = your_clien_secret_uri = redirect_Uri = http: //localhost_toke.php
ခွင့်ပြုချက်ကုဒ်, client id, client key key နှင့် URI ကိုအမှန်တကယ်တန်ဖိုးဖြင့်အစားထိုးပါ။ အကယ်. တောင်းဆိုမှုသည်အောင်မြင်ပါကသင်ဝင်ရောက်ခွင့်အမှတ်အသားတစ်ခုရရှိမည်ဖြစ်သည်။
အထက်ဖော်ပြပါအချက်သည် PHP တွင်ခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာကိုမည်သို့ဖန်တီးရမည်ကိုအပြည့်အဝလုပ်ဆောင်ခြင်းဖြစ်သည်။ Oauth2 ကိုအသုံးပြုခြင်းအားဖြင့်သင်၏လျှောက်လွှာအတွက်လုံခြုံသောခွင့်ပြုချက်လုပ်ငန်းစဉ်ကိုသင်အကောင်အထည်ဖော်နိုင်သည်။