2017-09-30 102 views
-1

我正在爲移動應用程序編寫其他API。我不知道如何在我的應用中授權用戶和管理員。 我有一個名爲「用戶」表,有一個名爲「isAdmin」這是或場。 現在當管理員發送帖子時,用戶可以看到posts.how您是否推薦驗證碼這兩個? 謝謝laravel rest api中的身份驗證和用戶管理

回答

1

我建議你閱讀有關身份驗證的laravel文檔:https://laravel.com/docs/5.5/authentication

你必須設置什麼是以下幾點:

  • 中間件(什麼途徑能夠爲用戶的使用和什麼路由可以由管理員使用)
  • isAdmin()函數編輯模型以確定用戶是用戶還是管理員

一個AdminMiddleware文件的實施例- 通過命令行創建:PHP人員化妝:中間件AdminMiddleware一個用戶模型isAdmin功能

<?php 

namespace App\Http\Middleware; 

use Closure; 
use Auth; 

class AdminMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next) 
    { 
     if(Auth::check() && Auth::user()->isAdmin()){ 
      return $next($request); 
     } 
     else{ 
      return view('your_view')->withErrors('You are not logged in'); 
     } 
    } 
} 

實施例 - 由創建命令行:php artisan make:model用戶

012你的路由文件

// @TODO: Set routes for user and admin here... 

Route::group(['middleware' => ['admin']], function() { 
    // @TODO: Set admin routes here, only admin can use this routes. 
}); 

您也可以編輯您的Kernel.php有點

例子:

protected $routeMiddleware = [ 
    // ... add this line 
    'admin' => \App\Http\Middleware\AdminMiddleware::class, 
]; 
+0

非常感謝你much.how你建議嗎?與isAdmin或兩張桌子的一張桌子? –

+0

@Steve我建議使用帶有isAdmin列的用戶表。如果稍後您決定要添加多種類型的用戶,請將列設置爲枚舉並更改isAdmin函數以適應此要求。否則,您最終會爲新類型的用戶創建新表,因此不建議這樣做。 –