2014-12-19 21 views
19

Tôi hiện đang thử nghiệm với Laravel 5 mới và đã xác thực để làm việc (đăng ký/đăng nhập).Xác thực mới của Laravel 5: Nhận người dùng hiện tại và cách triển khai vai trò?

Để có được người dùng xác thực trong điều khiển của tôi Tôi hiện tiêm Guard vào controller action:

use App\Http\Controllers\Controller; 
use Illuminate\Contracts\Auth\Guard; 

class ClientController extends Controller { 

    /** 
    * Display a listing of the resource. 
    * 
    * @return Response 
    */ 
    public function index(Guard $auth) 
    { 
     return view('client.index', ['user' => $auth->user()]); 
    } 
... 

Câu hỏi đầu tiên: Đây có phải là cách được đề nghị?

Câu hỏi thứ hai: Tôi sẽ thực hiện một số loại vai trò/quyền như thế nào? Một cái gì đó như client.edit, client.add, ... Larval 5 có cung cấp một số loại tiện lợi ở đây không? Làm cách nào để đặt vai trò/quyền cần thiết cho hành động của tuyến đường/bộ điều khiển?

Tôi nghĩ rằng tôi có thể cần phải viết phần mềm trung gian của riêng mình cho điều đó. Bất kỳ đề xuất về cách tiếp cận vấn đề?

Trả lời

50

Sau khi trải qua một thời gian thêm về Laravel 5 tôi có thể một câu trả lời câu hỏi của riêng tôi:

là tiêm Guard cách được đề nghị? Số: Nếu bạn cần truy cập Auth theo quan điểm của bạn, bạn có thể làm như vậy như thế này:

@if(Auth::check()) 
    Current user: {{ Auth::user()->name }} 
@endif 

này sử dụng Auth mặt tiền. Danh sách tất cả các mặt tiền có sẵn nằm trong config/app.php dưới aliases:

Nếu tôi cần Auth trong bộ điều khiển của mình thì sao? Tiêm một thể hiện của Guard như được hiển thị trong câu hỏi hoạt động, nhưng bạn không cần. Bạn có thể sử dụng Auth mặt tiền như chúng tôi đã làm trong mẫu:

public function index() 
    { 
     if(\Auth::check() && \Auth::user()->name === 'Don') { 
      // Do something 
     } 
     return view('client.index'); 
    } 

Hãy nhận biết rằng \ là cần thiết trước tên mặt tiền kể từ L5 đang sử dụng không gian tên.

Tôi muốn có quyền/vai trò sử dụng cơ chế auth mới trong L5: Tôi thực hiện một mô-đun cho phép trọng lượng nhẹ sử dụng middleware mới, nó được gọi là Laraguard. Hãy khám phá Github và cho tôi biết suy nghĩ của bạn: https://github.com/cgrossde/Laraguard

CẬP NHẬT: Vì mục đích hoàn chỉnh, tôi muốn đề cập thêm hai dự án nữa. Họ cung cấp mọi thứ bạn cần để cứu vai trò và quyền trong DB và hoạt động hoàn hảo cùng với Laraguard hoặc trên riêng của họ:

+0

bạn đã tạo các tuyến đường bộ lọc cho cơ sở vai trò người dùng tôi bị kẹt với https://github.com/romanbican/roles –

+0

Great Man .. !!! bạn làm cho ngày của tôi !! –

+0

Dù sao để làm điều đó mà không có mặt tiền? – Petah

0

Nếu bạn muốn làm cho xác thực tùy chỉnh của riêng bạn, bạn cần phải giữ mô hình User từ Laravel 5 với tất cả sự phụ thuộc. Sau khi bạn sẽ có thể đăng nhập người dùng của bạn trong bộ điều khiển của bạn. Đừng quên đặt (sử dụng Auth;) sau khi không gian tên của bộ điều khiển của bạn.

Các vấn đề liên quan