2017-09-30 64 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函数以适应此要求。否则,您最终会为新类型的用户创建新表,因此不建议这样做。 –