2017-05-25 38 views
5

Tôi thiết lập cấp quyền mật khẩu (phụ trợ cho ứng dụng). Bây giờ, tôi có thể gửi một yêu cầu gửi đến oauth/token và nó hoạt động trên Postman. Tuy nhiên, nếu tôi muốn đăng ký người dùng từ api thì sao?Đăng ký Người dùng với Hộ chiếu Laravel

Tôi hiểu rằng tôi có thể sử dụng tuyến đường hiện tại /register, tuy nhiên, tôi có cần phải chuyển hướng người dùng trở lại trang đăng nhập và đăng nhập lại bằng thông tin đăng nhập của mình không?

Hoặc trong RegisterController, trong chức năng registered(), tôi có nên chuyển hướng đến tuyến đường oauth/token không? (Đối với điều này, xin lưu ý rằng tôi đang gửi, tất cả 5 dữ liệu trong 'x-www-form-urlencoded' và có vẻ như hoạt động. Tuy nhiên, tôi có cần tách riêng một số tiêu đề không? Nó mờ cho tôi, vì vậy chỉ muốn để hỏi khi nào tôi có cơ hội).

Hoặc tôi có nên thêm nội dung nào đó vào phương thức oauth/token như this guy không? Trên thực tế, tôi đã cố gắng nắm bắt dữ liệu được đăng $request trên phương thức [email protected] bên trong thư viện, tuy nhiên tôi không thể tìm ra cách thao tác mảng parsedBody. Nếu tôi kích hoạt chức năng đăng ký của tôi từ thư viện thực tế, làm thế nào tôi biết nếu nó đăng ký hoặc đăng nhập?

Có thể tôi đang bỏ sót một số thông tin, nhưng tôi không thể tìm thấy bất cứ điều gì dựa trên chủ đề này. Cách xử lý thích hợp đăng ký người dùng trong Hộ chiếu là gì?

Trả lời

4

Trong API của bạn tạo ra tuyến đường như

Route::post('register','Api\[email protected]'); 

Và trong UsersController tạo phương pháp create()

function create(Request $request) 
{ 
    /** 
    * Get a validator for an incoming registration request. 
    * 
    * @param array $request 
    * @return \Illuminate\Contracts\Validation\Validator 
    */ 
    $valid = validator($request->only('email', 'name', 'password','mobile'), [ 
     'name' => 'required|string|max:255', 
     'email' => 'required|string|email|max:255|unique:users', 
     'password' => 'required|string|min:6', 
     'mobile' => 'required', 
    ]); 

    if ($valid->fails()) { 
     $jsonError=response()->json($valid->errors()->all(), 400); 
     return \Response::json($jsonError); 
    } 

    $data = request()->only('email','name','password','mobile'); 

    $user = User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     'mobile' => $data['mobile'] 
    ]); 

    // And created user until here. 

    $client = Client::where('password_client', 1)->first(); 

    // Is this $request the same request? I mean Request $request? Then wouldn't it mess the other $request stuff? Also how did you pass it on the $request in $proxy? Wouldn't Request::create() just create a new thing? 

    $request->request->add([ 
     'grant_type' => 'password', 
     'client_id'  => $client->id, 
     'client_secret' => $client->secret, 
     'username'  => $data['email'], 
     'password'  => $data['password'], 
     'scope'   => null, 
    ]); 

    // Fire off the internal request. 
    $token = Request::create(
     'oauth/token', 
     'POST' 
    ); 
    return \Route::dispatch($token); 
} 

Và sau khi tạo người dùng mới, trở về access token.

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