Advertisement
enkf

Untitled

Jan 13th, 2020
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers\Api;
  4.  
  5. use Illuminate\Http\Request;
  6. use App\Http\Controllers\Controller;
  7. use App\Models\User;
  8. use Carbon\Carbon;
  9. use Auth;
  10.  
  11. class AuthController extends Controller
  12. {
  13. /**
  14. * Display a listing of the resource.
  15. *
  16. * @return \Illuminate\Http\Response
  17. */
  18. public function register(Request $request)
  19. {
  20. $request->validate([
  21. 'name' => 'required|string',
  22. 'email' => 'required|string|email|unique:users',
  23. 'password' => 'required|string|confirmed'
  24. ]);
  25. $user = new User([
  26. 'name' => $request->name,
  27. 'email' => $request->email,
  28. 'password' => bcrypt($request->password)
  29. ]);
  30. $user->save();
  31. return response()->json([
  32. 'message' => 'Successfully created user!'
  33. ], 201);
  34.  
  35. }
  36.  
  37. public function login(Request $request)
  38. {
  39. $request->validate([
  40. 'email' => 'required|string|email',
  41. 'password' => 'required|string',
  42. 'remember_me' => 'boolean'
  43. ]);
  44. $credentials = request(['email', 'password']);
  45. if(!Auth::attempt($credentials))
  46. return response()->json([
  47. 'message' => 'Unauthorized'
  48. ], 401);
  49. $user = $request->user();
  50. $tokenResult = $user->createToken('Personal Access Token');
  51. $token = $tokenResult->token;
  52. if ($request->remember_me)
  53. $token->expires_at = Carbon::now()->addWeeks(1);
  54. $token->save();
  55. return response()->json([
  56. 'access_token' => $tokenResult->accessToken,
  57. 'token_type' => 'Bearer',
  58. 'user' => $user,
  59. 'expires_at' => Carbon::parse(
  60. $tokenResult->token->expires_at
  61. )->toDateTimeString()
  62. ]);
  63. }
  64.  
  65. public function logout(Request $request)
  66. {
  67. $request->user()->token()->revoke();
  68. return response()->json([
  69. 'message' => 'Successfully logged out'
  70. ]);
  71. }
  72.  
  73. public function user(Request $request)
  74. {
  75. return response()->json($request->user());
  76. }
  77.  
  78.  
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement