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