回答編集履歴

3

微修正

2017/09/01 18:23

投稿

aro10
aro10

スコア4106

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- $token = \Request::create(
73
+ $tokenRequest = \Request::create(
74
74
 
75
75
  'oauth/token',
76
76
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  );
80
80
 
81
- return \Route::dispatch($token);
81
+ return \Route::dispatch($tokenRequest);
82
82
 
83
83
  }
84
84
 

2

クライアント側プログラム追記

2017/09/01 18:22

投稿

aro10
aro10

スコア4106

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  ```
30
30
 
31
- public function register2(Request $request)
31
+ public function register(Request $request)
32
32
 
33
33
  {
34
34
 
@@ -85,3 +85,39 @@
85
85
  ```
86
86
 
87
87
 
88
+
89
+ LaravelからのHTTPレスポンスがJSON用になるように、Guzzleクライアントにheaderを追加しました。
90
+
91
+ ```
92
+
93
+ Route::get('/api_test', function () {
94
+
95
+ $client = new \GuzzleHttp\Client();
96
+
97
+ $res = $client->request('POST', 'http://teratailtestandlaravelpassport.dev/api/regist_user',[
98
+
99
+ 'headers' => ['Accept' => 'application/json'],
100
+
101
+ 'form_params' => [
102
+
103
+ 'name' => 'testName',
104
+
105
+ 'email' => 'test@gmail.com',
106
+
107
+ 'password' => 'testpassword'
108
+
109
+ ],
110
+
111
+ ]);
112
+
113
+
114
+
115
+ echo $res->getBody();
116
+
117
+ echo $res->getStatusCode();
118
+
119
+ });
120
+
121
+ ```
122
+
123
+

1

サンプル追記

2017/09/01 18:12

投稿

aro10
aro10

スコア4106

test CHANGED
@@ -13,3 +13,75 @@
13
13
  かと思います。
14
14
 
15
15
  詳細はRegisterControllerでuseしているIlluminate\Foundation\Auth\RegistersUsersを参照してください。
16
+
17
+
18
+
19
+ [サンプルプログラム]
20
+
21
+ registerメソッドそのままでは、Passport用になっていなかったので、以下の情報を元に即席ですがregisterメソッドをPassportに対応できるようにしてみたので参考にしてください。
22
+
23
+
24
+
25
+ [Registering User with Laravel Passport](https://stackoverflow.com/questions/44172818/registering-user-with-laravel-passport)
26
+
27
+
28
+
29
+ ```
30
+
31
+ public function register2(Request $request)
32
+
33
+ {
34
+
35
+ $this->validator($request->all())->validate();
36
+
37
+
38
+
39
+ event(new Registered($user = $this->create($request->all())));
40
+
41
+
42
+
43
+   #以下をLaravel Passport用に修正
44
+
45
+
46
+
47
+ #php artisan passport:client --passwordでパスワードグラントクライアントを事前に作成しておく
48
+
49
+ #Laravel\Passport\Client
50
+
51
+ $client = Client::where('password_client', 1)->first();
52
+
53
+
54
+
55
+ $request->request->add([
56
+
57
+ 'grant_type' => 'password',
58
+
59
+ 'client_id' => $client->id,
60
+
61
+ 'client_secret' => $client->secret,
62
+
63
+ 'username' => $request->input('email'),
64
+
65
+ 'password' => $request->input('password'),
66
+
67
+ 'scope' => null,
68
+
69
+ ]);
70
+
71
+
72
+
73
+ $token = \Request::create(
74
+
75
+ 'oauth/token',
76
+
77
+ 'POST'
78
+
79
+ );
80
+
81
+ return \Route::dispatch($token);
82
+
83
+ }
84
+
85
+ ```
86
+
87
+