×ðÁú¿­Ê±¹ÙÍøµÇ¼

Laravel¿ª·¢£ºÔõÑùʹÓÃLaravel Passport¼ò»¯OAuth2Éí·ÝÑéÖ¤£¿

Ëæ×ÅwebÓ¦ÓóÌÐòµÄÆÕ¼°£¬oauth2ÒѾ­³ÉΪ×îÊ¢ÐеÄÉí·ÝÑé֤ЭÒéÖ®Ò»¡£oauth2ͨ¹ýÊÚȨÁîÅÆÀ´»á¼ûÊܱ£»¤µÄ×ÊÔ´£¬ÎªÓû§ÌṩÇå¾²ºÍ¿ìËٵĻá¼û¡£

LaravelÊÇÒ»¸öÊ¢ÐеÄPHP WebÓ¦ÓóÌÐò¿ò¼Ü£¬ÒѾ­³ÉΪWeb¿ª·¢ÕßµÄÊ×Ñ¡¡£Ëü¾ßÓÐÇ¿Ê¢µÄ¹¦Ð§ºÍ¼òÆÓµÄÓï·¨£¬¿ÉÒÔ×ÊÖúWeb¿ª·¢Ö°Ô±¿ìËÙ¹¹½¨¸ßÖÊÁ¿µÄWebÓ¦ÓóÌÐò¡£Laravel PassportÊÇLaravelÖÐÒ»ÖÖºÜÊÇÇ¿Ê¢µÄOAuth2ʵÏÖ£¬Ëü¿ÉÒÔ×ÊÖú¿ª·¢Õß¼ò»¯OAuth2Éí·ÝÑéÖ¤¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«Ì½ÌÖÔõÑùʹÓÃLaravel PassportÀ´ÊµÏÖOAuth2Éí·ÝÑéÖ¤¡£

Laravel PassportÏÈÈÝ

Laravel PassportÊÇLaravelÖеÄÒ»¸öOAuth2ЧÀÍÆ÷ʵÏÖ£¬Ëü¿ÉÒÔ×ÊÖú¿ª·¢Õß¿ìËÙ¹¹½¨OAuth2ЧÀÍÆ÷£¬¼ò»¯OAuth2Éí·ÝÑéÖ¤µÄÀú³Ì¡£Ëü²»µ«ÌṩOAuth2Ô­Éú±ê×¼µÄʵÏÖ£¬»¹ÌṩÁËAPIÃÜÔ¿¡¢¿Í»§¶Ëƾ֤ºÍ»á¼ûÁîÅƵÈЧÀÍ¡£Laravel Passport»¹ÌṩÁËһϵÁеÄAPIÀ´ÖÎÀí¿Í»§¶Ë¡¢ÃÜÔ¿ºÍÁîÅÆ£¬²¢ÇÒ¿ÉÒÔÓëLaravelµÄÓû§ÈÏ֤ϵͳÍêÉƼ¯³É¡£

ʹÓÃLaravel Passport

Laravel PassportµÄ×°ÖÃÊǺÜÊǼòÆӵģ¬¿ÉÒÔʹÓÃComposerʵÏÖ¡£ÔÚÖÕ¶ËÖнøÈëÄúµÄLaravelÓ¦ÓóÌÐòĿ¼²¢ÊäÈëÒÔÏÂÏÂÁ

composer require laravel/passport

µÇ¼ºó¸´ÖÆ

½ÓÏÂÀ´£¬ÎÒÃÇÐèÒªÔËÐÐLaravel PassportµÄ×°ÖÃÏÂÁî¡£ÎÒÃÇ¿ÉÒÔʹÓÃArtisanÏÂÁîpassport:install¾ÙÐÐ×°Ö᣸ÃÏÂÁÌìÉúÐëÒªµÄÊý¾Ý¿âǨá㡢һЩ¼ÓÃÜÃÜÔ¿ºÍÓ¦ÓóÌÐò»á¼ûÁîÅÆ¡£ÎÒÃÇ¿ÉÒÔÖ±½ÓÔËÐÐÒÔÏÂÏÂÁ

php artisan passport:install

µÇ¼ºó¸´ÖÆ

ÔÚÔËÐиÃÏÂÁîºó£¬ÄúÓ¦¸Ã¿´µ½ÀàËÆÒÔϵÄÊä³ö£º

Encryption keys generated successfully.
Client ID: 1
Client secret: 9CrrluKEDJ3xvTLyHoSz3g3b5W3H4EBvLIS1G3V5

µÇ¼ºó¸´ÖÆ

ÒÔÉÏÊä³öÖеĿͻ§¶ËIDºÍ¿Í»§¶ËÃØÔ¿ÊÇÄúÔÚÓ¦ÓóÌÐòÖÐ×¢²áOAuth2¿Í»§¶ËËùÐèµÄÐÅÏ¢¡£¿Í»§¶Ëƾ֤ʹ¿Í»§¶ËÄܹ»»ñÈ¡Óû§ÁîÅƲ¢»á¼ûÄúµÄAPIЧÀÍÆ÷¡£

ÏÖÔÚ£¬ÎÒÃÇÒѾ­×°ÖÃÁËLaravel Passport£¬½ÓÏÂÀ´ÈÃÎÒÃÇÀ´¿´¿´ÔõÑùʹÓÃËüÀ´ÊµÏÖOAuth2ÈÏÖ¤¡£

ÌìÉúAPIÁîÅÆ

Laravel PassportÌṩÁËÒ»¸öAPIÁîÅÆÓÃÓÚÿ¸öÓû§£¬¸ÃÁîÅÆ¿ÉÓÃÓÚ»á¼ûÊܱ£»¤µÄAPI¶Ëµã¡£ÒªÌìÉúAPIÁîÅÆ£¬ÇëʹÓÃÒÔÏ´úÂ룺

$user = AppModelsUser::find(1);

$token = $user->createToken('MyApp')->accessToken;

µÇ¼ºó¸´ÖÆ

ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃÇʹÓÃcreateTokenÒªÁìÀ´ÌìÉúAPIÁîÅÆ¡£ÎÒÃÇÐèÒªÌṩһ¸ö±êʶ×Ö·û´®£¬ÒÔ±ãÔÚδÀ´Äܹ»Ê¶±ðÁîÅÆ¡£´ËÒªÁ콫·µ»ØÒ»¸öAccessTokenʵÀý£¬ÎÒÃÇ¿ÉÒÔʹÓÃaccessTokenÊôÐÔÀ´»ñÈ¡ÁîÅÆ×Ö·û´®¡£

ҪʹÓÃAPIÁîÅÆÀ´»á¼ûÊܱ£»¤µÄAPI¶Ëµã£¬ÎÒÃÇÐèÒª½«ÁîÅƸ½¼Óµ½HTTPÇëÇóµÄÍ·ÖС£Ê¹ÓÃÒÔÏ´úÂ룺

$request->header('Authorization', 'Bearer '.$accessToken);

µÇ¼ºó¸´ÖÆ

ÔÚÕâ¸öÀý×ÓÖУ¬ÎÒÃÇʹÓÃÇëÇóÍ·AuthorizationÀ´ÌṩAPIÁîÅÆ£¬ÆäÖÐÁîÅÆ×Ö·û¹´Í¨³£ÒÔǰ׺¡°Bearer¡±¿ªÍ·¡£

ÔÚÇëÇóÍ·ÖÐÌí¼ÓAPIÁîÅƺó£¬Äú¿ÉÒÔ»á¼ûÊܱ£»¤µÄAPI¶Ëµã£¬²¢ÇÒЧÀÍÆ÷½«Ê¹ÓÃAPIÁîÅÆÀ´¾ÙÐÐÉí·ÝÑéÖ¤¡£

¿Í»§¶Ëƾ֤

OAuth2¿Í»§¶Ëƾ֤ÔÊÐí¿Í»§¶Ë´ú±íÓû§´ÓOAuth2ЧÀÍÆ÷»ñÈ¡»á¼ûÁîÅÆ¡£ÔÚLaravel PassportÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏ´úÂëÀ´×¢²áOAuth2¿Í»§¶Ë£º

use LaravelPassportClient;

$client = new Client;

$client->name = 'MyApp';
$client->redirect = 'http://example.com/callback';

$client->save();

$client->createToken()->accessToken;

µÇ¼ºó¸´ÖÆ

ÎÒÃÇ¿ÉÒÔʹÓÃÉÏÊöÒªÁìÀ´½¨ÉèOAuth2¿Í»§¶Ë£¬²¢½«¿Í»§¶ËIDºÍ¿Í»§¶ËÃØÔ¿ÓÃÓÚ»ñÈ¡»á¼ûÁîÅÆ¡£

OAuth2ÊÚȨÂë

OAuth2ÊÚȨÂëÊÇÒ»ÖÖÁ÷³Ì£¬ÔÊÐíÓû§Í¨¹ý¿Í»§¶Ë´ú±íÓû§ÇëÇóOAuth2ЧÀÍÆ÷»ñÈ¡»á¼ûÁîÅÆ¡£Laravel PassportÖ§³ÖOAuth2ÊÚȨÂëÁ÷³Ì£¬»¹ÌṩÁËÓÃÓÚÖÎÀíÊÚȨÂëµÄAPI¡£ÀýÈ磬ÒÔÏÂÊÇÔõÑù½¨ÉèOAuth2ÊÚȨÂëµÄʾÀý£º

use LaravelPassportPassport;
use IlluminateHttpRequest;

Route::get('/redirect', function (Request $request) {
    $query = http_build_query([
        'client_id' => 'client-id',
        'redirect_uri' => 'http://example.com/callback',
        'response_type' => 'code',
        'scope' => '',
    ]);

    return redirect('http://example.com/oauth/authorize?'.$query);
});

Route::get('/callback', function (Request $request) {
    $token = Request::create(
        'http://example.com/oauth/token',
        'POST',
        [
            'grant_type' => 'authorization_code',
            'client_id' => 'client-id',
            'client_secret' => 'client-secret',
            'redirect_uri' => 'http://example.com/callback',
            'code' => $request->code,
        ]
    );

    $response = Route::dispatch($token);

    return json_decode((string) $response->getContent(), true);
})->name('callback');

µÇ¼ºó¸´ÖÆ

ÔÚÉÏÃæµÄ´úÂëÖУ¬ÎÒÃÇÊ×ÏÈʹÓÃhttp_build_queryº¯ÊýÌìÉúҪת´ï¸øOAuth2ЧÀÍÆ÷µÄÅÌÎÊ×Ö·û´®¡£È»ºóÎÒÃÇÖض¨Ïòµ½OAuth2ЧÀÍÆ÷£¬²¢×ª´ïÅÌÎÊ×Ö·û´®×÷Ϊ²ÎÊý¡£µ±Óû§ÊÚȨºó£¬OAuth2ЧÀÍÆ÷½«Öض¨Ïò»ØÎÒÃǵÄÓ¦ÓóÌÐò¡£ÔÚÎÒÃǵĻص÷·ÓÉÖУ¬ÎÒÃÇÌìÉúÒ»¸ö»á¼ûÁîÅÆ£¬ÒÔ±ãÔÚδÀ´ÓÃÓÚ»á¼ûÊܱ£»¤µÄAPI¶Ëµã¡£

½áÂÛ

ÔÚ±¾ÆªÎÄÕÂÖУ¬ÎÒÃÇѧϰÁËÔõÑùʹÓÃLaravel PassportÀ´¼ò»¯OAuth2Éí·ÝÑéÖ¤µÄÀú³Ì¡£ÎÒÃÇÏàʶÁËÔõÑùÌìÉúAPIÁîÅÆ¡¢ÉèÖÿͻ§¶Ëƾ֤ºÍʵÏÖOAuth2ÊÚȨÂëÁ÷³Ì¡£Laravel PassportÌṩÁËÒ»¸öÈÝÒ×Ã÷È·µÄAPI£¬Ê¹ÎÒÃÇÄܹ»¿ìËÙʵÏÖÇå¾²µÄOAuth2Éí·ÝÑéÖ¤¡£ÈôÊÇÄúÏëÔÚLaravelÓ¦ÓóÌÐòÖоÙÐÐOAuth2Éí·ÝÑéÖ¤£¬ÄÇôLaravel Passport½«ÊÇÄúµÄÊ×Ñ¡½â¾ö¼Æ»®¡£

ÒÔÉϾÍÊÇLaravel¿ª·¢£ºÔõÑùʹÓÃLaravel Passport¼ò»¯OAuth2Éí·ÝÑéÖ¤£¿µÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ