>本教程演示了使用Laravel Passport庫在Laravel應用程序中構建強大的OAuth2服務器。我們將介紹服務器配置,並提供消耗OAuth2 API的實踐示例。 假定基本的OAuth2知識。 Laravel護照大大簡化了該過程。
>教程分為兩個部分:庫安裝和配置,然後創建和消費示例資源。
服務器配置
本節詳細詳細安裝和配置護照的必要組件以使用Laravel運行。
>安裝Laravel Passport Library>
使用Composer安裝庫:
composer require laravel/passport
啟用護照服務
> Laravel使用服務提供商來管理應用程序服務。要啟用護照,您需要將其服務提供商添加到。 (如果不熟悉Laravel服務提供商,請參考相關的介紹資源。)至關重要的是,您還必須註冊Passport的路由(在
>的方法中)並運行config/app.php
命令。此命令還允許客戶端創建。讓我們創建一個演示客戶端。 boot
app/Providers/AuthServiceProvider.php
php artisan passport:install
命令提示以獲取詳細信息:用戶ID,客戶端名稱和重定向URI。 重定向URI是授權後用戶重定向的地方,攜帶授權代碼。
php artisan passport:client
現在,我們可以測試oauth2 apis。
在此示例中,我們將在文檔root中創建
<code>New client created successfully. Client ID: 3 Client secret: 1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m</code>
>
createoauth2_client/auth_redirection.php oauth2_client
:
記住將佔位符和
替換為您的實際值。<?php $query = http_build_query([ 'client_id' => '3', 'redirect_uri' => 'http://localhost/oauth2_client/callback.php', 'response_type' => 'code', 'scope' => '', ]); header('Location: http://your-laravel-site-url/oauth/authorize?' . $query); ?>
接下來,創建client_id
oauth2_client/callback.php redirect_uri
:
再次,根據需要調整URL和憑據。 >
<?php if (isset($_REQUEST['code']) && $_REQUEST['code']) { $ch = curl_init(); $url = 'http://your-laravel-site-url/oauth/token'; $params = [ 'grant_type' => 'authorization_code', 'client_id' => '3', 'client_secret' => '1BT1tNj0Are27IGvIZe4lE2jRjtiVt0fmtaWBe8m', 'redirect_uri' => 'http://localhost/oauth2_client/callback.php', 'code' => $_REQUEST['code'], ]; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $params_string = ''; if (is_array($params) && count($params)) { foreach ($params as $key => $value) { $params_string .= $key . '=' . $value . '&'; } rtrim($params_string, '&'); curl_setopt($ch, CURLOPT_POST, count($params)); curl_setopt($ch, CURLOPT_POSTFIELDS, $params_string); } $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); if (isset($response->access_token) && $response->access_token) { $access_token = $response->access_token; $ch = curl_init(); $url = 'http://your-laravel-site-url/api/user/get'; $header = ['Authorization: Bearer ' . $access_token]; $query = http_build_query(['uid' => '1']); curl_setopt($ch, CURLOPT_URL, $url . '?' . $query); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); $result = curl_exec($ch); curl_close($ch); $response = json_decode($result); var_dump($result); } } ?>
用戶與兩個應用程序進行交互:Laravel應用程序(與現有帳戶)和第三方客戶端(auth_redirection.php和callback.php)。
http://localhost/oauth2_client/auth_redirection.php
。 http://localhost/oauth2_client/callback.php
callback.php
訪問令牌用於進行API調用(例如,http://your-laravel-site-url/api/user/get
>本教程展示了Laravel Passport在設置OAuth2服務器方面的易用性。 要進行進一步的Laravel開發資源,請探索Envato市場。
以上是使用Laravel中的Passport設置OAuth2服務器的詳細內容。更多資訊請關注PHP中文網其他相關文章!