×ðÁú¿­Ê±

̽Ë÷ Laravel ÖеÄÊÚȨ»úÖƼ°ÊµÏÖÒªÁì

laravel ÊÇÒ»¸öÊ¢ÐÐµÄ php ¿ò¼Ü £¬ÓÃÓÚ¹¹½¨ÖÖÖÖÀàÐ굀 web Ó¦ÓóÌÐò ¡£µ±Äú¹¹½¨ web Ó¦ÓóÌÐòʱ £¬ÍùÍùÐèÒª¶ÔÓû§ºÍ×ÊÔ´¾ÙÐÐÖÎÀíºÍ±£»¤ £¬Õâ¾ÍÐèÒª¶Ô»á¼ûȨÏÞ¾ÙÐÐÖÎÀí ¡£

Laravel ÌṩÁËÒ»ÖÖ¼òÆÓ¶øÓÐÇ¿Ê¢µÄÈÏÖ¤ºÍÊÚȨҪÁì £¬¿ÉÒÔÀû±ãµØΪӦÓóÌÐòµÄÓû§¸¶Óë²î±ð¼¶±ðµÄȨÏÞ ¡£ÔÚ±¾ÆªÎÄÕÂÖÐ £¬ÎÒÃǽ«Ì½Ë÷ Laravel ÖеÄÊÚȨ»úÖƼ°×ÅʵÏÖÒªÁì ¡£

ʲôÊÇ Laravel ÊÚȨ

ÊÚȨÊÇÖ¸ÔÚÓ¦ÓóÌÐòÖнç˵ºÍʵÏÖ»á¼û¿ØÖƵÄÀú³Ì ¡£Õâ°üÀ¨È·ÈÏÓû§ÊÇË­¡¢ÑéÖ¤ËûÃǵÄÉí·ÝºÍÈ·ÈÏËûÃÇÊÇ·ñ±»ÊÚÓè»á¼û¹²Ïí×ÊÔ´µÄȨÏÞ ¡£

ÔÚ Laravel ÖÐ £¬ÊÚȨÊÇÖ¸Óû§Äܹ»Ö´ÐеÄÌض¨²Ù×÷»ò»á¼ûµÄÌض¨×ÊÔ´ ¡£Ëü»ùÓÚÓû§µÄ½ÇÉ«»òÔÊÐí֤ȷ¶¨ £¬ÒÔ±£»¤Ó¦ÓóÌÐòÖеÄÃô¸Ð²Ù×÷»ò×ÊÔ´ ¡£

Laravel ÊÚȨµÄÀàÐÍ

ÔÚ Laravel ÖÐ £¬ÓÐÁ½ÖÖÀàÐ͵ÄÊÚȨ£ºÖÐÐļþÊÚȨºÍÕ½ÂÔÊÚȨ ¡£

ÖÐÐļþÊÚȨ

ÖÐÐļþÊÚȨÊÇͨ¹ý Laravel µÄÖÐÐļþ»úÖÆʵÏÖµÄ ¡£ÖÐÐļþÊÇÔÚ HTTP ÇëÇóºÍÏìÓ¦Ö®¼äÖ´ÐеÄÒ»¶Î´úÂë £¬¿ÉÓÃÓÚÍê³ÉÖÖÖÖʹÃü £¬ÀýÈçÇëÇóÑéÖ¤¡¢ÊÚȨ¡¢¼Í¼²Ù×÷µÈ ¡£

ʹÓÃÖÐÐļþÊÚȨʱ £¬Ã¿ÆäÖÐÐļþ¶¼¼ì²éÌض¨µÄÌõ¼þ ¡£ÈôÊÇÌõ¼þ²»Öª×ã £¬ÖÐÐļþ»á¾Ü¾øÇëÇó £¬²¢ÇÒÄú¿ÉÒÔ½«Óû§Öض¨Ïòµ½µÇ¼ҳÃæ»òÆäËû¹ýʧҳÃæ ¡£

Õ½ÂÔÊÚȨ

Õ½ÂÔÊÚȨÊÇÀëÉ¢µÄÊÚȨϵͳ £¬´ú±íÄúµÄÓ¦ÓóÌÐòÖеÄÿ¸öÄ£×Ó ¡£Ê¹ÓÃÕ½ÂÔÊÚȨʱ £¬Äú¿ÉÒÔ½ç˵ÿ¸öÄ£×ÓµÄʹÓÃȨÏÞ £¬ÀýÈç¶ÁÈ¡¡¢½¨Éè¡¢¸üкÍɾ³ýÊý¾ÝµÈ ¡£

ʹÓÃÕ½ÂÔÊÚȨʱ £¬Äú¿ÉÒÔÉèÖô¦Öóͷ£ÊÚȨÂß¼­µÄÒªÁì ¡£ÈôÊÇÊÚȨ¼ì²éʧ°Ü £¬Laravel »á×Ô¶¯Å׳ö 403 Forbidden Òì³£ ¡£

Laravel ÊÚȨµÄʵÏÖ

ÖÐÐļþÊÚȨ

ҪʹÓÃÖÐÐļþÊÚȨ £¬ÇëʵÏÖÖÐÐļþ²¢½«ÆäÌí¼Óµ½Â·ÓÉÖÐ ¡£ÖÐÐļþÓ¦¸Ã¼ì²éÌض¨µÄÌõ¼þ £¬²¢ÔÚÌõ¼þ²»Öª×ãʱ×èÖ¹ÇëÇó ¡£

ÒÔÏÂÊÇÒ»¸öʾÀýÖÐÐļþʵÏÖ £¬Ëü¼ì²éÓû§ÊÇ·ñÓµÓÐÌض¨µÄ½ÇÉ«£º

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class RoleMiddleware
{
    public function handle($request, Closure $next, $role)
    {
        if (! Auth::user()->hasRole($role)) {
            return redirect('/home');
        }

        return $next($request);
    }
}

µÇ¼ºó¸´ÖÆ

ҪʹÓÃÆäÖÐÐļþ £¬Ç뽫Æä×¢²áµ½ app/Http/Kernel.php ÎļþÖÐµÄ $routeMiddleware ÊôÐÔÖÐ ¡£

protected $routeMiddleware = [
    'role' => \App\Http\Middleware\RoleMiddleware::class,
];

µÇ¼ºó¸´ÖÆ

ÏÖÔÚ £¬Äú¿ÉÒÔÔÚ·ÓÉÖÐʹÓà role ÖÐÐļþÁË ¡£

Route::group(['middleware' => ['role:admin']], function () {
    Route::get('/dashboard', function () {
        // Your code
    });
});

µÇ¼ºó¸´ÖÆ

ÉÏÃæµÄ´úÂë»á¼ì²éÓû§ÊÇ·ñÓµÓÐ admin ½ÇÉ« £¬²¢ÔÚûÓÐȨÏÞµÄÇéÐÎÏÂÖض¨Ïòµ½Ö÷Ò³ ¡£Äú¿ÉÒÔƾ֤ÐèÒªÐÞ¸ÄÖÐÐļþʵÏÖ ¡£

Õ½ÂÔÊÚȨ

Õ½ÂÔÊÚȨÊÇÓëÄ£×ÓÏà¹ØµÄÀëÉ¢ÊÚȨϵͳ ¡£Äú±ØÐè×ñÕÕÒÔϼ¸¸ö°ì·¨À´ÊµÏÖÕ½ÂÔÊÚȨ£º

ÌìÉúÕ½ÂÔ

ʹÓà make:policy ÏÂÁîÌìÉúÕ½ÂÔÀࣺ

php artisan make:policy ArticlePolicy --model=Article

µÇ¼ºó¸´ÖÆ

´ËÏÂÁÔÚ app/Policies Ŀ¼Öн¨ÉèÒ»¸öÃûΪ ArticlePolicy µÄÀà ¡£Äú¿ÉÒÔÔÚ¸ÃÀàÖÐÖ¸¶¨Ã¿¸ö Article Ä£×ÓµÄÊÚȨÂß¼­ ¡£

×¢²áÕ½ÂÔ

ÔÚ app/Providers/AuthServiceProvider.php ÎļþµÄ $policies ÊôÐÔÖÐ×¢²áÕ½ÂÔ£º

use App\Article;
use App\Policies\ArticlePolicy;

protected $policies = [
    Article::class => ArticlePolicy::class,
];

µÇ¼ºó¸´ÖÆ

½¨ÉèÊÚȨҪÁì

ÏÖÔÚ £¬Äú¿ÉÒÔÔÚÕ½ÂÔÖÐʵÏÖÊÚȨÂß¼­ÁË ¡£ÀýÈç £¬Äú¿ÉÒÔ½¨ÉèÒ»¸ö¿ÉÒԱ༭ÎÄÕµÄÒªÁ죺

public function update(User $user, Article $article)
{
    return $user->id === $article->user_id;
}

µÇ¼ºó¸´ÖÆ

ÉÏÃæµÄ´úÂë¼ì²éÄ¿½ñÓû§ÊÇ·ñÊÇÎÄÕÂ×÷Õß £¬ÈôÊÇÊÇ £¬Ôò¿ÉÒÔÐÞ¸ÄÎÄÕ ¡£ÈôÊDz»ÊÇ £¬ÔòÎÞ·¨»á¼ûÎÄÕ±༭ҳÃæ ¡£

ÒªÔÚ¿ØÖÆÆ÷ÖÐʹÓÃÕ½ÂÔÊÚȨ £¬ÇëÔÚ»á¼û update ÒªÁì֮ǰŲÓà authorize ÒªÁ죺

public function update(Article $article, Request $request)
{
    $this->authorize('update', $article);

    // Your code
}

µÇ¼ºó¸´ÖÆ

ÉÏÃæµÄ´úÂë»á¼ì²éÓû§ÊÇ·ñÓÐȨÏÞÐÞ¸ÄÎÄÕ £¬ÈôÊÇûÓÐÔò»áÅ׳ö 403 Forbidden Òì³£ ¡£

×ܽá

Laravel ÌṩÁËÒ»ÖÖ¼òÆÓ¶øÓÐÇ¿Ê¢µÄÊÚȨ»úÖÆ £¬¿ÉÒÔÈÃÎÒÃÇÇáËɵØΪӦÓóÌÐòµÄÓû§½ç˵²î±ðµÄȨÏÞ¼¶±ð ¡£ÖÐÐļþÊÚȨºÍÕ½ÂÔÊÚȨÊÇ Laravel ÊÚȨµÄÁ½ÖÖÀàÐÍ £¬¿ÉÒÔÓ¦¶Ô²î±ðµÄ³¡¾° ¡£

ͨ¹ý±¾ÎĵÄÏÈÈÝ £¬ÐÅÍÐÄúÒѾ­ÕÆÎÕÁË Laravel ÊÚȨµÄ¿´·¨ºÍʵÏÖÒªÁì £¬ÈôÊÇÄúÕýÔÚ¹¹½¨Ò»¸öÐèÒª¾ÙÐÐÓû§È¨ÏÞÖÎÀíµÄ Web Ó¦ÓóÌÐò £¬ÕâЩ֪ʶ½«»áÊÇÄúµÄÀûÆ÷ ¡£

ÒÔÉϾÍÊÇ̽Ë÷ Laravel ÖеÄÊÚȨ»úÖƼ°ÊµÏÖÒªÁìµÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

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

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

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

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

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