尊龙凯时人生就是搏

laravelÖÐjwtÔõôÓÃ

Ëæ×ÅapiµÄÒ»Ö±Éú³¤ £¬Ô½À´Ô½¶àµÄwebÓ¦ÓóÌÐòÐèҪʹÓÃjson web tokens£¨jwt£©À´ÊµÏÖÓû§ÈÏÖ¤ºÍÊÚȨ¡£¶ølaravel×÷Ϊһ¸ö¿ª·¢apiµÄÊ×Ñ¡¿ò¼Ü £¬Ò²Ö§³Öjwt¡£±¾ÎĽ«ÏÈÈÝÔÚlaravelÖÐÔõÑùʹÓÃjwt¡£

ʲôÊÇJWT£¿

JSON Web Token£¨JWT£©ÊÇÒ»ÖÖ¿ª·Å±ê×¼£¨RFC 7519£© £¬ÓÃÓÚÔÚ¸÷·½Ö®¼äÇå¾²µØ½«ÉùÃ÷´«ÊäΪJSON¹¤¾ß¡£JWT¿ÉÒÔÓÃÓÚÊÚȨ¡¢Éí·ÝÑéÖ¤ºÍÐÅÏ¢½»Á÷¡£JWTͨ³£ÔÚHTTPÇëÇóµÄAuthorizationÍ·ÖÐ×÷ΪBearerÁîÅÆ´«Êä¡£

JWTµÄ½á¹¹ÓÉÈý²¿·Ö×é³É£ºÍ·²¿¡¢ÔغɺÍÊðÃû¡£Í·²¿ºÍÔغɶ¼ÊÇJSON¹¤¾ß £¬ÊðÃûÊǽ«ÕâÁ½¸ö²¿·ÖÍŽáÆðÀ´¼ÓÃܵÄЧ¹û¡£ÓÉÓÚJWTµÄ½á¹¹ºÜÊǼòÆÓ £¬Òò´Ë¿ÉÒÔÇáËɵØÆÊÎöºÍÑéÖ¤¡£

ÔõÑùÔÚLaravelÖÐʹÓÃJWT£¿

ʹÓÃJWTÐèÒªÔÚLaravelÏîÄ¿ÖÐ×°ÖÃÏÂÁÐÒÀÀµ¿â£ºtymondesigns/jwt-auth¡£ÔÚLaravel 5.7¼°¸ü¸ß°æ±¾ÖÐ £¬¿ÉÒÔʹÓÃÒÔÏÂÏÂÁî×°ÖøÃÒÀÀµ¿â£º

composer require tymon/jwt-auth

µÇ¼ºó¸´ÖÆ

×°ÖÃÍê³Éºó £¬ÐèÒªÔÚconfig/app.phpÎļþÖÐÌí¼ÓÒÔÏÂЧÀÍÌṩ³ÌÐòºÍÓÖÃû£º

'providers' => [
    // Other Service Providers
    TymonJWTAuthProvidersLaravelServiceProvider::class,
],

'aliases' => [
    // Other Aliases
    'JWTAuth' => TymonJWTAuthFacadesJWTAuth::class,
    'JWTFactory' => TymonJWTAuthFacadesJWTFactory::class,
],

µÇ¼ºó¸´ÖÆ

½ÓÏÂÀ´ £¬ÐèÒªÌìÉúJWTµÄÃÜÔ¿¡£¿ÉÒÔʹÓÃÒÔÏÂÏÂÁîÌìÉúÃÜÔ¿£º

php artisan jwt:secret

µÇ¼ºó¸´ÖÆ

Õâ¸öÏÂÁî»áÌìÉúÒ»¸öËæ»úµÄÃÜÔ¿ £¬²¢½«ÆäÌí¼Óµ½config/jwt.phpÎļþÖС£ºÜÖ÷ÒªµÄÒ»µãÊÇ £¬ÐèÒª±£»¤ºÃ¸ÃÃÜÔ¿ £¬²»Òª½«Æäй¶¸øÈκÎÈË¡£

ÌìÉúÃÜÔ¿ºó £¬¿ÉÒÔ×îÏÈÔÚLaravelÖÐʹÓÃJWT¡£JWT¿ÉÒÔÓÃÓÚÉí·ÝÑéÖ¤ºÍÊÚȨ¡£

ʹÓÃJWT¾ÙÐÐÉí·ÝÑéÖ¤

ÔÚLaravelÖÐʹÓÃJWT¾ÙÐÐÉí·ÝÑéÖ¤µÄÀú³ÌÈçÏ£º

Óû§Ìá½»Æäƾ֤£¨ÀýÈç £¬Óû§ÃûºÍÃÜÂ룩¡£

Ó¦ÓóÌÐòʹÓÃÕâЩƾ֤À´ÌìÉúÒ»¸öJWT £¬²¢½«Æä·µ»Ø¸øÓû§¡£

Óû§ÔÚ½ÓÏÂÀ´µÄÇëÇóÖн«¸ÃJWT°üÀ¨ÔÚAuthorizationÍ·ÖÐ £¬×÷ΪBearerÁîÅÆ¡£

Ó¦ÓóÌÐò´ÓJWTÖÐÌáÈ¡Óû§ÐÅÏ¢ £¬²¢ÑéÖ¤ÆäÉí·Ý¡£

ÌìÉúJWT²¢·µ»Ø¸øÓû§µÄ´úÂëÈçÏ£º

public function login(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (!$token = JWTAuth::attempt($credentials)) {
        return response()->json(['error' => 'Unauthorized'], 401);
    }

    return response()->json(['token' => $token]);
}

µÇ¼ºó¸´ÖÆ

ÑéÖ¤JWT²¢ÌáÈ¡Óû§ÐÅÏ¢µÄ´úÂëÈçÏ£º

public function profile(Request $request)
{
    $user = JWTAuth::parseToken()->authenticate();

    return response()->json(['user' => $user]);
}

µÇ¼ºó¸´ÖÆ

ʹÓÃJWT¾ÙÐÐÊÚȨ

ÔÚLaravelÖÐʹÓÃJWT¾ÙÐÐÊÚȨµÄÀú³ÌÈçÏ£º

Ó¦ÓóÌÐòÔÚÓû§»á¼ûÊܱ£»¤µÄ×ÊԴ֮ǰ £¬ÑéÖ¤ÆäÉí·Ý¡£

ÈôÊÇÓû§ÒѾ­Í¨¹ýÉí·ÝÑéÖ¤ £¬ÔòÓ¦ÓóÌÐò¼ì²é¸ÃJWTÊÇ·ñ°üÀ¨Êʵ±µÄ½ÇÉ«»òȨÏÞ¡£

ÈôÊÇÓû§ÓµÓÐÊʵ±µÄ½ÇÉ«»òȨÏÞ £¬ÔòÓ¦ÓóÌÐòÊÚÓèÆä»á¼ûËùÇëÇóµÄ×ÊÔ´¡£

ÑéÖ¤JWT²¢¼ì²éÓû§µÄ½ÇÉ«»òȨÏ޵ĴúÂëÈçÏ£º

public function index(Request $request)
{
    $user = JWTAuth::parseToken()->authenticate();

    if ($user->hasRole('admin')) {
        $items = Item::all();
    } else {
        $items = Item::where('user_id', '=', $user->id)->get();
    }

    return response()->json(['items' => $items]);
}

µÇ¼ºó¸´ÖÆ

ÐèҪעÖصÄÊÇ £¬ÕâÀïµÄhasRole()ÒªÁìÊÇ×Ô½ç˵ҪÁì £¬ÐèÒªÔÚUserÄ£×ÓÖÐʵÏÖ¡£

×ܽá

±¾ÎÄÏÈÈÝÁËÔÚLaravelÖÐʹÓÃJWT¾ÙÐÐÉí·ÝÑéÖ¤ºÍÊÚȨµÄÀú³Ì¡£JWTÌṩÁËÒ»ÖÖÇå¾²¡¢¼òÆӺͿÉÀ©Õ¹µÄÓû§Éí·ÝÑéÖ¤»úÖÆ £¬Äܹ»±£»¤Ó¦ÓóÌÐòÃâÊÜÖÖÖÖ¹¥»÷¡£ÈôÊÇÄãÕýÔÚ¿ª·¢Ò»¸öÐèÒªAPIµÄWebÓ¦ÓóÌÐò £¬ÄÇôʹÓÃJWTÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£

ÒÔÉϾÍÊÇlaravelÖÐjwtÔõôÓõÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

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

Ïà¹ØÐÂÎÅ

ÁªÏµ尊龙凯时人生就是搏

18523999891

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

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

QR code
sitemap¡¢ÍøÕ¾µØͼ