Базовая версия сервера авторизации по протоколу OAuth2
This commit is contained in:
		
							
								
								
									
										40
									
								
								app/Http/Controllers/Auth/ConfirmPasswordController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								app/Http/Controllers/Auth/ConfirmPasswordController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Auth;
 | 
			
		||||
 | 
			
		||||
use App\Http\Controllers\Controller;
 | 
			
		||||
use App\Providers\RouteServiceProvider;
 | 
			
		||||
use Illuminate\Foundation\Auth\ConfirmsPasswords;
 | 
			
		||||
 | 
			
		||||
class ConfirmPasswordController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    /*
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    | Confirm Password Controller
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    |
 | 
			
		||||
    | This controller is responsible for handling password confirmations and
 | 
			
		||||
    | uses a simple trait to include the behavior. You're free to explore
 | 
			
		||||
    | this trait and override any functions that require customization.
 | 
			
		||||
    |
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    use ConfirmsPasswords;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Where to redirect users when the intended url fails.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $redirectTo = RouteServiceProvider::HOME;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new controller instance.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct()
 | 
			
		||||
    {
 | 
			
		||||
        $this->middleware('auth');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								app/Http/Controllers/Auth/ForgotPasswordController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/Http/Controllers/Auth/ForgotPasswordController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Auth;
 | 
			
		||||
 | 
			
		||||
use App\Http\Controllers\Controller;
 | 
			
		||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
 | 
			
		||||
 | 
			
		||||
class ForgotPasswordController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    /*
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    | Password Reset Controller
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    |
 | 
			
		||||
    | This controller is responsible for handling password reset emails and
 | 
			
		||||
    | includes a trait which assists in sending these notifications from
 | 
			
		||||
    | your application to your users. Feel free to explore this trait.
 | 
			
		||||
    |
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    use SendsPasswordResetEmails;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								app/Http/Controllers/Auth/LoginController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								app/Http/Controllers/Auth/LoginController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Auth;
 | 
			
		||||
 | 
			
		||||
use App\Http\Controllers\Controller;
 | 
			
		||||
use App\Providers\RouteServiceProvider;
 | 
			
		||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
 | 
			
		||||
 | 
			
		||||
class LoginController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    /*
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    | Login Controller
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    |
 | 
			
		||||
    | This controller handles authenticating users for the application and
 | 
			
		||||
    | redirecting them to your home screen. The controller uses a trait
 | 
			
		||||
    | to conveniently provide its functionality to your applications.
 | 
			
		||||
    |
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    use AuthenticatesUsers;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Where to redirect users after login.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $redirectTo = RouteServiceProvider::HOME;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new controller instance.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct()
 | 
			
		||||
    {
 | 
			
		||||
        $this->middleware('guest')->except('logout');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										73
									
								
								app/Http/Controllers/Auth/RegisterController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								app/Http/Controllers/Auth/RegisterController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Auth;
 | 
			
		||||
 | 
			
		||||
use App\Http\Controllers\Controller;
 | 
			
		||||
use App\Providers\RouteServiceProvider;
 | 
			
		||||
use App\User;
 | 
			
		||||
use Illuminate\Foundation\Auth\RegistersUsers;
 | 
			
		||||
use Illuminate\Support\Facades\Hash;
 | 
			
		||||
use Illuminate\Support\Facades\Validator;
 | 
			
		||||
 | 
			
		||||
class RegisterController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    /*
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    | Register Controller
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    |
 | 
			
		||||
    | This controller handles the registration of new users as well as their
 | 
			
		||||
    | validation and creation. By default this controller uses a trait to
 | 
			
		||||
    | provide this functionality without requiring any additional code.
 | 
			
		||||
    |
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    use RegistersUsers;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Where to redirect users after registration.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $redirectTo = RouteServiceProvider::HOME;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new controller instance.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct()
 | 
			
		||||
    {
 | 
			
		||||
        $this->middleware('guest');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get a validator for an incoming registration request.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  array  $data
 | 
			
		||||
     * @return \Illuminate\Contracts\Validation\Validator
 | 
			
		||||
     */
 | 
			
		||||
    protected function validator(array $data)
 | 
			
		||||
    {
 | 
			
		||||
        return Validator::make($data, [
 | 
			
		||||
            'name' => ['required', 'string', 'max:255'],
 | 
			
		||||
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
 | 
			
		||||
            'password' => ['required', 'string', 'min:8', 'confirmed'],
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new user instance after a valid registration.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  array  $data
 | 
			
		||||
     * @return \App\User
 | 
			
		||||
     */
 | 
			
		||||
    protected function create(array $data)
 | 
			
		||||
    {
 | 
			
		||||
        return User::create([
 | 
			
		||||
            'name' => $data['name'],
 | 
			
		||||
            'email' => $data['email'],
 | 
			
		||||
            'password' => Hash::make($data['password']),
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										30
									
								
								app/Http/Controllers/Auth/ResetPasswordController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								app/Http/Controllers/Auth/ResetPasswordController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Auth;
 | 
			
		||||
 | 
			
		||||
use App\Http\Controllers\Controller;
 | 
			
		||||
use App\Providers\RouteServiceProvider;
 | 
			
		||||
use Illuminate\Foundation\Auth\ResetsPasswords;
 | 
			
		||||
 | 
			
		||||
class ResetPasswordController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    /*
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    | Password Reset Controller
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    |
 | 
			
		||||
    | This controller is responsible for handling password reset requests
 | 
			
		||||
    | and uses a simple trait to include this behavior. You're free to
 | 
			
		||||
    | explore this trait and override any methods you wish to tweak.
 | 
			
		||||
    |
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    use ResetsPasswords;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Where to redirect users after resetting their password.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $redirectTo = RouteServiceProvider::HOME;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								app/Http/Controllers/Auth/VerificationController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								app/Http/Controllers/Auth/VerificationController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers\Auth;
 | 
			
		||||
 | 
			
		||||
use App\Http\Controllers\Controller;
 | 
			
		||||
use App\Providers\RouteServiceProvider;
 | 
			
		||||
use Illuminate\Foundation\Auth\VerifiesEmails;
 | 
			
		||||
 | 
			
		||||
class VerificationController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    /*
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    | Email Verification Controller
 | 
			
		||||
    |--------------------------------------------------------------------------
 | 
			
		||||
    |
 | 
			
		||||
    | This controller is responsible for handling email verification for any
 | 
			
		||||
    | user that recently registered with the application. Emails may also
 | 
			
		||||
    | be re-sent if the user didn't receive the original email message.
 | 
			
		||||
    |
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    use VerifiesEmails;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Where to redirect users after verification.
 | 
			
		||||
     *
 | 
			
		||||
     * @var string
 | 
			
		||||
     */
 | 
			
		||||
    protected $redirectTo = RouteServiceProvider::HOME;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a new controller instance.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct()
 | 
			
		||||
    {
 | 
			
		||||
        $this->middleware('auth');
 | 
			
		||||
        $this->middleware('signed')->only('verify');
 | 
			
		||||
        $this->middleware('throttle:6,1')->only('verify', 'resend');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								app/Http/Controllers/Controller.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								app/Http/Controllers/Controller.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers;
 | 
			
		||||
 | 
			
		||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
 | 
			
		||||
use Illuminate\Foundation\Bus\DispatchesJobs;
 | 
			
		||||
use Illuminate\Foundation\Validation\ValidatesRequests;
 | 
			
		||||
use Illuminate\Routing\Controller as BaseController;
 | 
			
		||||
 | 
			
		||||
class Controller extends BaseController
 | 
			
		||||
{
 | 
			
		||||
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								app/Http/Controllers/InfoController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								app/Http/Controllers/InfoController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Description of InfoController
 | 
			
		||||
 *
 | 
			
		||||
 * @author Andrey Pokidov <pokidov@e-traffic.ru>
 | 
			
		||||
 */
 | 
			
		||||
class InfoController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    public function index()
 | 
			
		||||
    {
 | 
			
		||||
        var_dump(session()->all());
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										43
									
								
								app/Http/Controllers/OAuthController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								app/Http/Controllers/OAuthController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace App\Http\Controllers;
 | 
			
		||||
 | 
			
		||||
use \Illuminate\Http\Request;
 | 
			
		||||
use \Laravel\Passport\Passport;
 | 
			
		||||
use Illuminate\Support\Facades\Auth;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Description of OAuthController
 | 
			
		||||
 *
 | 
			
		||||
 * @author Andrey Pokidov <pokidov@e-traffic.ru>
 | 
			
		||||
 */
 | 
			
		||||
class OAuthController extends Controller
 | 
			
		||||
{
 | 
			
		||||
    public function resource(Request $request)
 | 
			
		||||
    {
 | 
			
		||||
        if (is_null($request->user())) {
 | 
			
		||||
            return redirect('/');
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        $user = $request->user();
 | 
			
		||||
        
 | 
			
		||||
        $response = new \stdClass();
 | 
			
		||||
        $response->resourceOwnerId = $user->id;
 | 
			
		||||
        
 | 
			
		||||
        if ($user->tokenCan('fullname')) {
 | 
			
		||||
            $response->name = $user->first_name;
 | 
			
		||||
            $response->patronymic = $user->middle_name;
 | 
			
		||||
            $response->lastname = $user->last_name;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if ($user->tokenCan('email')) {
 | 
			
		||||
            $response->email = $user->email;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if ($user->tokenCan('birthday')) {
 | 
			
		||||
            $response->birthday = $user->birthday;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return json_encode($response);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user