လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP OAUTH2 ခွင့်ပြုချက် - ခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာတစ်ခုတည်ဆောက်ရန်လမ်းညွှန်အပြည့်အစုံ

PHP OAUTH2 ခွင့်ပြုချက် - ခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာတစ်ခုတည်ဆောက်ရန်လမ်းညွှန်အပြည့်အစုံ

M66 2025-06-21

PHP OAUTH2 ခွင့်ပြုချက် - ခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာတစ်ခုတည်ဆောက်ရန်လမ်းညွှန်အပြည့်အစုံ

Oauth သည်အသုံးပြုသူများအရင်းအမြစ်များကိုလုံလုံခြုံခြုံသုံးစွဲရန်တတိယပါတီအက်ပလီကေးရှင်းများကိုခွင့်ပြုသည့်ပွင့်လင်းသောစံတစ်ခုဖြစ်သည်။ Oauth2 တွင်ခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်သည်အသုံးအများဆုံးခွင့်ပြုချက်အမျိုးအစားဖြစ်သည်။ ဤဆောင်းပါးသည် PHP ရှိခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာကို PHP ရှိခွင့်ပြုချက်ကုဒ်ခွင့်ပြုချက်ဆာဗာကိုမည်သို့တည်ဆောက်ရမည်ကိုအသေးစိတ်ဖော်ပြထားသည်။

Oauth2 ခွင့်ပြုချက်ကုဒ်နံပါတ်ခြုံငုံသုံးသပ်ချက်

ခွင့်ပြုချက်ကုဒ်အတွက်ခွင့်ပြုချက်လုပ်ငန်းစဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

  1. 0 န်ဆောင်မှုခံယူသူသည်ခွင့်ပြုချက်ဆာဗာသို့ခွင့်ပြုချက်တောင်းခံမှုကိုစတင်ခဲ့သည်။
  2. ခွင့်ပြုချက်ဆာဗာသည်အသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းစစ်ဆေးပြီးအသုံးပြုသူခွင့်ပြုချက်တောင်းခံသည်။
  3. အသုံးပြုသူသည်ခွင့်ပြုချက်ကိုသဘောတူပြီးနောက်ခွင့်ပြုချက်ဆာဗာသည် 0 န်ဆောင်မှုခံယူသူအားခွင့်ပြုချက်ကုဒ်ကိုထုတ်ပေးသည်။
  4. 0 န်ဆောင်မှုခံယူသူသည်ခွင့်ပြုချက်ကုဒ်, client client နှင့် client id နှင့် client id key ကဲ့သို့သောသတင်းအချက်အလက်များကို အသုံးပြု. ခွင့်ပြုချက်ဆာဗာမှဝင်ရောက်ခွင့်အမှတ်အသားကိုတောင်းဆိုသည်။
  5. ခွင့်ပြုချက်ဆာဗာသည်သတင်းအချက်အလက်နှင့်ပြ issues နာများကိုလက်လှမ်းမီမှုတိုကင်များကိုစစ်ဆေးသည်။
  6. သုံးစွဲသူသည်အသုံးပြုသူအရင်းအမြစ်များကိုရရှိရန်အရင်းအမြစ်ဆာဗာကိုရယူရန်ဝင်ရောက်ခွင့်အမှတ်အသားကိုအသုံးပြုသည်။

php oauth2 စာကြည့်တိုက်ကို install လုပ်ပါ

ပထမ ဦး စွာလူကြိုက်များသော 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))
    ထွက်ပေါက်(&#39;
        <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>
    &#39;);
}

$ is_authorized = ($ _post [&#39;username&#39;] == &#39;admin&#39; && $ _post [&#39;password&#39;] == &#39;admin&#39;) == &#39;admin&#39; &#39;==&#39; adder &#39;==&#39; &#39;password&#39;] == &#39;adder&#39; == &#39;_POST&#39;) == &#39;admin&#39; &#39;==&#39; adder &#39;)

$ ဆာဗာ -> handleauthorizerizerquest ($ တောင်းဆိုမှု, $ တုံ့ပြန်မှု, $ is_authorized);

လျှင် ($ is_authorized) {
    $ တုံ့ပြန်မှု -> Send ();
} အခြား
    ECHO &#39;ခွင့်ပြုချက်မအောင်မြင်ပါ,
}

ဒေတာဘေ့စ်စားပွဲတစ်ခုဖန်တီးပါ

ယခုကျွန်ုပ်တို့သည် 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 &#39;&#39;,
    `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 ဟာအောင်မြင်မယ်ဆိုရင်ဆာဗာသည်ခွင့်ပြုချက်ကုဒ်ကိုပြန်ပို့ပေးလိမ့်မည်။

Access Token ကိုတောင်းဆိုပါ

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 ကိုအသုံးပြုခြင်းအားဖြင့်သင်၏လျှောက်လွှာအတွက်လုံခြုံသောခွင့်ပြုချက်လုပ်ငန်းစဉ်ကိုသင်အကောင်အထည်ဖော်နိုင်သည်။