VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > PHP >
  • php教程之使用Laravel集成JWT认证开发RestfulApi(5)

  

运行以下命令创建一个新的 ApiController :

1
php artisan make:controller ApiController

  

这将会在 app/Http/Controllers 目录下创建 ApiController.php 文件。将下面的代码黏贴至该文件中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
namespace App\Http\Controllers;
use App\Http\Requests\RegisterAuthRequest;
use App\User;
use Illuminate\Http\Request;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;
class ApiController extends Controller
{
 public $loginAfterSignUp = true;
 public function register(RegisterAuthRequest $request)
 {
 $user = new User();
 $user->name = $request->name;
 $user->email = $request->email;
 $user->password = bcrypt($request->password);
 $user->save();
 if ($this->loginAfterSignUp) {
 return $this->login($request);
 }
 return response()->json([
 'success' => true,
 'data' => $user
 ], 200);
 }
 public function login(Request $request)
 {
 $input = $request->only('email''password');
 $jwt_token = null;
 if (!$jwt_token = JWTAuth::attempt($input)) {
 return response()->json([
 'success' => false,
 'message' => 'Invalid Email or Password',
 ], 401);
 }
 return response()->json([
 'success' => true,
 'token' => $jwt_token,
 ]);
 }
 public function logout(Request $request)
 {
 $this->validate($request, [
 'token' => 'required'
 ]);
 try {
 JWTAuth::invalidate($request->token);
 return response()->json([
 'success' => true,
 'message' => 'User logged out successfully'
 ]);
 catch (JWTException $exception) {
 return response()->json([
 'success' => false,
 'message' => 'Sorry, the user cannot be logged out'
 ], 500);
 }
 }
 public function getAuthUser(Request $request)
 {
 $this->validate($request, [
 'token' => 'required'
 ]);
 $user = JWTAuth::authenticate($request->token);
 return response()->json(['user' => $user]);
 }
}
相关教程