質問編集履歴
2
自己解決しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
6. `php artisan passport:client` 実行し、テストクライアントを登録
|
60
60
|
|
61
|
-
(userId:3 , リダイレクトurl: 127.0.0.1:8800/call
|
61
|
+
(userId:3 , リダイレクトurl: http://127.0.0.1:8800/api/call.php を設定
|
62
62
|
|
63
63
|
client_secret: ycSOk6b2SbKH9VpRUUT9v3Ty9kufYiSUI5VrIprO)
|
64
64
|
|
@@ -82,113 +82,65 @@
|
|
82
82
|
|
83
83
|
## ソースコード
|
84
84
|
|
85
|
-
ア
|
85
|
+
クライアントアプリから呼び出す
|
86
86
|
|
87
|
-
|
87
|
+
oauth.php
|
88
88
|
|
89
|
-
|
89
|
+
``` php
|
90
90
|
|
91
|
-
|
91
|
+
<?php
|
92
|
-
|
93
|
-
use Illuminate\Support\Facades\Http;
|
94
92
|
|
95
93
|
|
96
94
|
|
97
|
-
|
95
|
+
require 'vendor/autoload.php';
|
98
96
|
|
99
|
-
|
97
|
+
use GuzzleHttp\Client as Client;
|
98
|
+
|
99
|
+
$guzzle = new Client;
|
100
100
|
|
101
101
|
|
102
102
|
|
103
|
-
|
103
|
+
$query = http_build_query([
|
104
104
|
|
105
|
-
|
105
|
+
'client_id' => '3',
|
106
106
|
|
107
|
-
|
107
|
+
'redirect_uri' => 'http://localhost:3000/api/call.php',
|
108
108
|
|
109
|
-
|
109
|
+
'response_type' => 'code',
|
110
110
|
|
111
|
-
|
111
|
+
'scope' => '',
|
112
112
|
|
113
|
-
'grant_type' => 'authorization_code',
|
114
|
-
|
115
|
-
'client_id' => 'client-id',
|
116
|
-
|
117
|
-
'client_secret' => 'client-secret',
|
118
|
-
|
119
|
-
'redirect_uri' => 'http://127.0.0.1:8800/callback',
|
120
|
-
|
121
|
-
'code' => $request->code,
|
122
|
-
|
123
|
-
|
113
|
+
]);
|
124
114
|
|
125
115
|
|
126
116
|
|
127
|
-
|
117
|
+
//認証確認画面にリダイレクト
|
128
118
|
|
129
|
-
});
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
Route::get('/redirect', function (Request $request) {
|
136
|
-
|
137
|
-
$request->session()->put('state', $state = Str::random(40));
|
138
|
-
|
139
|
-
$query =http_build_query([
|
140
|
-
|
141
|
-
'client_id' => 'client-id',
|
142
|
-
|
143
|
-
'redirect_uri' => 'http://127.0.0.1:8800/callback',
|
144
|
-
|
145
|
-
'response_type' => 'code',
|
146
|
-
|
147
|
-
'scope' => '',
|
148
|
-
|
149
|
-
'state' => $state,
|
150
|
-
|
151
|
-
]);
|
152
|
-
|
153
|
-
|
119
|
+
header('Location: http://localhost:8080/oauth/authorize?'.$query);
|
154
|
-
|
155
|
-
});
|
156
|
-
|
157
|
-
|
158
120
|
|
159
121
|
```
|
160
122
|
|
161
123
|
|
162
124
|
|
163
|
-
|
125
|
+
call.php
|
164
126
|
|
165
127
|
``` php
|
166
128
|
|
167
|
-
|
129
|
+
<?php
|
168
130
|
|
169
|
-
|
131
|
+
require 'vendor/autoload.php';
|
170
132
|
|
171
|
-
'client_id' => '3',
|
172
|
-
|
173
|
-
'redirect_uri' => 'http://127.0.0.1:8800/callback',
|
174
|
-
|
175
|
-
'response_type' => 'code',
|
176
|
-
|
177
|
-
|
133
|
+
use GuzzleHttp\Client as Client;
|
178
|
-
|
179
|
-
]);
|
180
|
-
|
181
|
-
return redirect('http://localhost:8080/oauth/authorize?'.$query);
|
182
|
-
|
183
|
-
});
|
184
134
|
|
185
135
|
|
186
136
|
|
187
|
-
|
137
|
+
$http = new Client;
|
188
138
|
|
189
|
-
$http = new GuzzleHttp\Client;
|
190
139
|
|
140
|
+
|
141
|
+
if($_GET['code']){
|
142
|
+
|
191
|
-
$response = $http->post('http://
|
143
|
+
$response = $http->post('http://127.0.0.1:8080/oauth/token',[
|
192
144
|
|
193
145
|
'form_params' => [
|
194
146
|
|
@@ -198,18 +150,22 @@
|
|
198
150
|
|
199
151
|
'client_secret' => 'ycSOk6b2SbKH9VpRUUT9v3Ty9kufYiSUI5VrIprO',
|
200
152
|
|
201
|
-
'redirect_uri' => 'http://
|
153
|
+
'redirect_uri' => 'http://localhost:3000/api/call.php',
|
202
154
|
|
203
|
-
'code' =>
|
155
|
+
'code' => $_GET['code'],
|
204
156
|
|
205
157
|
],
|
206
158
|
|
207
159
|
]);
|
208
160
|
|
209
|
-
$res = json_decode((string) $response->getBody(), true);
|
210
161
|
|
211
|
-
echo $res['access_token'];
|
212
162
|
|
163
|
+
$res = json_decode((string)$response->getBody(), true);
|
164
|
+
|
165
|
+
echo $res['access_token'];
|
166
|
+
|
213
|
-
}
|
167
|
+
}
|
168
|
+
|
169
|
+
|
214
170
|
|
215
171
|
```
|
1
laravel6にて動作確認したため
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
クライアントアプリにアクセストークン表示を目的にしておりますが表題通り進まないため、質問になります。
|
4
4
|
|
5
|
-
|
5
|
+
一度laravel6にて確認したところ、問題なく認証画面が表示、アクセストークンからユーザ情報取得までできました。
|
6
|
-
|
6
|
+
|
7
|
-
|
7
|
+
よろしくお願いいたします。
|
8
8
|
|
9
9
|
|
10
10
|
|