teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ログイン処理をしているコントローラーのコードの追加

2019/07/01 11:48

投稿

dauto
dauto

スコア38

title CHANGED
File without changes
body CHANGED
@@ -22,4 +22,83 @@
22
22
 
23
23
  return ($plain === $user->getAuthPassword());
24
24
  }
25
+ ```
26
+
27
+ ### 追記
28
+ ログイン処理の構文は以下の通りです。
29
+
30
+ AuthController
31
+ ```PHP
32
+ <?php
33
+
34
+ namespace App\Http\Controllers\Auth;
35
+ use App\User;
36
+ use Carbon\Carbon;
37
+ use Illuminate\Http\Request;
38
+ use App\Http\Controllers\Controller;
39
+ use Illuminate\Support\Facades\Auth;
40
+ class AuthController extends Controller
41
+ {
42
+ public function login(Request $request) {
43
+ $request->validate([
44
+ 'email' => 'required|string|email',
45
+ 'password' => 'required|string',
46
+ //'remember_me' => 'boolean'
47
+ ]);
48
+ $credentials = request(['email', 'password']);
49
+ if(!Auth::attempt($credentials))
50
+ return response()->json([
51
+ 'message' => 'Unauthorized'
52
+ ], 401);
53
+ $user = $request->user();
54
+ $tokenResult = $user->createToken('Personal Access Token');
55
+ $token = $tokenResult->token;
56
+ if ($request->remember_me)
57
+ $token->expires_at = Carbon::now()->addWeeks(1);
58
+ $token->save();
59
+ return response()->json([
60
+ 'access_token' => $tokenResult->accessToken,
61
+ 'token_type' => 'Bearer',
62
+ 'expires_at' => Carbon::parse(
63
+ $tokenResult->token->expires_at
64
+ )->toDateTimeString()
65
+ ]);
66
+ }
67
+ public function register(Request $request)
68
+ {
69
+ $request->validate([
70
+ 'fName' => 'required|string',
71
+ 'lName' => 'required|string',
72
+ 'email' => 'required|string|email|unique:users',
73
+ 'password' => 'required|string'
74
+ ]);
75
+ $user = new User;
76
+ $user->first_name = $request->fName;
77
+ $user->last_name = $request->lName;
78
+ $user->email = $request->email;
79
+ $user->password = bcrypt($request->password);
80
+ $user->save();
81
+ return response()->json([
82
+ 'message' => 'Successfully created user!'
83
+ ], 201);
84
+ }
85
+ public function logout(Request $request)
86
+ {
87
+ $request->user()->token()->revoke();
88
+ return response()->json([
89
+ 'message' => 'Successfully logged out'
90
+ ]);
91
+ }
92
+
93
+ /**
94
+ * Get the authenticated User
95
+ *
96
+ * @return [json] user object
97
+ */
98
+ public function user(Request $request)
99
+ {
100
+ return response()->json($request->user());
101
+ }
102
+ }
103
+
25
104
  ```