質問編集履歴

7

追記

2021/04/08 08:26

投稿

tomoki_at
tomoki_at

スコア6

test CHANGED
File without changes
test CHANGED
@@ -286,7 +286,7 @@
286
286
 
287
287
  {
288
288
 
289
- "url": "http://52.55.57.45/line?_token=xQaztDCWvbQ07VK4jZOjCiEOALg3rilSELE7MJ2e&comment=&name=a&radio=%E3%82%A2%E3%82%A4%E3%82%A2%E3%83%B3%E3%81%AE%E7%B2%BE%E5%BA%A6%E3%82%92%E3%81%82%E3%81%92%E3%81%9F%E3%81%84&rules=on&tel=0000000000"
289
+ "url": "http://hogehoge/line?_token=xQaztDCWvbQ07VK4jZOjCiEOALg3rilSELE7MJ2e&comment=&name=a&radio=%E3%82%A2%E3%82%A4%E3%82%A2%E3%83%B3%E3%81%AE%E7%B2%BE%E5%BA%A6%E3%82%92%E3%81%82%E3%81%92%E3%81%9F%E3%81%84&rules=on&tel=0000000000"
290
290
 
291
291
  }
292
292
 
@@ -350,6 +350,22 @@
350
350
 
351
351
 
352
352
 
353
+ アクセスログをchromeの開発者モードのnetwork>referを見るとちゃんとhttpsからになっている
354
+
355
+ またcookiesを見たがlaravel_session等はそもそも発行されていないor保存できていない
356
+
357
+ tinkerでファイルが動くかやると正常に動く
358
+
359
+ つまりサーバ間で何か起こってそう
360
+
361
+
362
+
363
+ 確かにエラー画面でrequestを見るとhttp://ドメイン名/lineになっている
364
+
365
+ てかgetなのになんで?*******みたいになってないん?
366
+
367
+
368
+
353
369
  またcsrf対策をすると419エラーが出てしまうため419対策を抜いてみたら、sessionが保存されていないことに気がついた
354
370
 
355
371
  ### 試したこと

6

誤字

2021/04/08 08:26

投稿

tomoki_at
tomoki_at

スコア6

test CHANGED
File without changes
test CHANGED
@@ -354,7 +354,7 @@
354
354
 
355
355
  ### 試したこと
356
356
 
357
- session_secure_SESSION_SECURE_COOKIE=true
357
+ SESSION_SECURE_COOKIE=true
358
358
 
359
359
  を追加していなかったので追加
360
360
 

5

追記

2021/04/08 04:37

投稿

tomoki_at
tomoki_at

スコア6

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
 
4
4
 
5
+ 現在予約システムの開発中です
6
+
5
7
  laravelで開発したシステムをSSL化したところsessionが使えなくなり下記のエラーが出ました
6
8
 
7
9
  sessionを使うことがゴールです
@@ -22,7 +24,7 @@
22
24
 
23
25
  ```
24
26
 
25
-
27
+ ```
26
28
 
27
29
  Request
28
30
 
@@ -30,6 +32,8 @@
30
32
 
31
33
  Method GET
32
34
 
35
+ ```
36
+
33
37
 
34
38
 
35
39
  個人的にhttpに今の挙動がhttps->http->https
@@ -58,14 +62,22 @@
58
62
 
59
63
  ```
60
64
 
61
- userの情報を一時保存しようとしてます
62
-
63
- ファイル名は適当です
64
-
65
65
 
66
66
 
67
67
  ```env
68
68
 
69
+ APP_NAME=Laravel
70
+
71
+ APP_ENV=production
72
+
73
+ APP_KEY=********
74
+
75
+ APP_DEBUG=true
76
+
77
+ APP_URL=https://ドメイン名
78
+
79
+
80
+
69
81
  BROADCAST_DRIVER=log
70
82
 
71
83
  CACHE_DRIVER=file
@@ -80,35 +92,171 @@
80
92
 
81
93
  ```
82
94
 
83
- 抜粋です
95
+
84
96
 
85
97
 
86
98
 
87
99
  ```session
88
100
 
101
+ use Illuminate\Support\Str;
102
+
103
+ return [
104
+
105
+ 'driver' => env('SESSION_DRIVER', 'file'),
106
+
107
+ 'expire_on_close' => true,
108
+
109
+ 'encrypt' => false,
110
+
111
+ 'files' => storage_path('framework/sessions'),
112
+
113
+ 'connection' => env('SESSION_CONNECTION', null),
114
+
115
+ 'table' => 'sessions',
116
+
117
+ 'store' => env('SESSION_STORE', null),
118
+
119
+ 'lottery' => [2, 100],
120
+
121
+ 'cookie' => env(
122
+
123
+ 'SESSION_COOKIE',
124
+
125
+ Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
126
+
127
+ ),
128
+
129
+ 'path' => '/',
130
+
131
+ 'domain' => env('SESSION_DOMAIN', null),
132
+
89
133
  'secure' => env('SESSION_SECURE_COOKIE',true),
90
134
 
135
+ 'http_only' => false,
136
+
137
+ 'same_site' => 'none',
138
+
139
+ ];
140
+
141
+
142
+
91
- ```
143
+ ```
144
+
145
+
146
+
92
-
147
+ route
93
-
94
148
 
95
149
  ```web
96
150
 
151
+ //カレンダー ここではgoogleカレンダーの情報の取得とuser情報をデータベースから取得=>sessionとして保存
152
+
153
+ Route::get('profile/{name?}/{id?}', 'calendar\CalendarController@calendar')->name('calendar');
154
+
155
+
156
+
157
+ //確認画面 ここでは予定のID,予約開始時間をsessionとして保存
158
+
159
+ Route::post('/info/{name?}/{id?}','CheckController@check')->name('check');
160
+
161
+
162
+
163
+ //決算画面用 ここでは前のところで保存した、userと予定のIDをsessionから取得
164
+
97
- Route::get('/line','コントローラー名')->name('getpay');
165
+ Route::get('/line','payController@pay')->name('getpay');
98
-
166
+
99
- ```
167
+ ```
168
+
169
+
170
+
100
-
171
+ view
172
+
101
-
173
+ ```profile
174
+
102
-
175
+ <form class="form" id="form" name="form" method="post" action="{{ route('check',[ 'name' => $user->name, 'id' => $user->id ]) }}">
176
+
177
+ @csrf
178
+
179
+ <input type="hidden" value="{{ $end_time }}" name="start_date" />
180
+
181
+ <input type="hidden" value="{{ $hour }}" name="start" />
182
+
183
+ <input type="hidden" value="{{ $end_hour_array[$end_time] }}" name="finish" />
184
+
185
+ <input type="hidden" value="{{ $calendar_Id[$end_time] }}" name="id" />
186
+
187
+ <button>◎</button>
188
+
189
+ </form>
190
+
103
- ```
191
+ ```
104
-
192
+
105
- //ここのformで投げた情報をsessionに記録して使いたい
193
+ ```info
106
194
 
107
195
  <form method="get" action="{{ route('getpay') }}">
108
196
 
109
- <form>
197
+ @csrf
198
+
110
-
199
+ <input id="name" type="text" name="name" autocomplete="name" required>
200
+
201
+ <input id="tel" type="tel" name="tel" required>
202
+
203
+ <textarea id="comment" class="comment" name="comment" placeholder="その他記入欄"></textarea>
204
+
111
- ```
205
+ ```
206
+
207
+
208
+
209
+ controller
210
+
211
+
212
+
213
+ ```CalendarController
214
+
215
+ $user = User::where('id', $id)->first();
216
+
217
+ $request->session()->put('user', $user);
218
+
219
+ ```
220
+
221
+ ```checkController
222
+
223
+ $start = $request->input('start');
224
+
225
+ $finish = $request->input('finish');
226
+
227
+ $start_date = $request->input('start_date');
228
+
229
+ $scheduleId = $request->input('id');
230
+
231
+ $request->session()->put('start_date', $start_date);
232
+
233
+ $request->session()->put('scheduleId', $scheduleId);
234
+
235
+ ```
236
+
237
+ ```
238
+
239
+ $user = session()->get('user');
240
+
241
+ $scheduleId = session()->get('scheduleId');
242
+
243
+ $request->session()->put('lesson_time', $request->input('lesson_time'));
244
+
245
+ $request->session()->put('name', $request->input('name'));
246
+
247
+ $request->session()->put('tel', $request->input('tel'));
248
+
249
+ $request->session()->put('radio', $request->input('radio'));
250
+
251
+ $request->session()->put('worry_comment', $request->input('comment'));
252
+
253
+
254
+
255
+ $check = $this->CalendarCheck($user, $scheduleId);
256
+
257
+ ```
258
+
259
+ Provider
112
260
 
113
261
  ```AppServiceProvider
114
262
 
@@ -126,6 +274,82 @@
126
274
 
127
275
 
128
276
 
277
+ sessionが正しく機能した場合
278
+
279
+ ```
280
+
281
+ _token
282
+
283
+ xQaztDCWvbQ07VK4jZOjCiEOALg3rilSELE7MJ2e
284
+
285
+ _previous
286
+
287
+ {
288
+
289
+ "url": "http://52.55.57.45/line?_token=xQaztDCWvbQ07VK4jZOjCiEOALg3rilSELE7MJ2e&comment=&name=a&radio=%E3%82%A2%E3%82%A4%E3%82%A2%E3%83%B3%E3%81%AE%E7%B2%BE%E5%BA%A6%E3%82%92%E3%81%82%E3%81%92%E3%81%9F%E3%81%84&rules=on&tel=0000000000"
290
+
291
+ }
292
+
293
+ _flash
294
+
295
+ {
296
+
297
+ "old": [],
298
+
299
+ "new": []
300
+
301
+ }
302
+
303
+ user
304
+
305
+ {
306
+
307
+ ユーザー情報(id,nameなどなど...)
308
+
309
+ }
310
+
311
+ start_date 2021-04-07-09-00
312
+
313
+ scheduleId **************
314
+
315
+ lesson_time 1
316
+
317
+ name 打ち込まれた名前
318
+
319
+ tel 打ち込まれた電話番号
320
+
321
+ worry_comment commentの内容
322
+
323
+
324
+
325
+ ```
326
+
327
+ こんな感じになるはず(http環境ではなっていた)
328
+
329
+
330
+
331
+ 現在sessionをみると
332
+
333
+ ```
334
+
335
+ _token stv7ebsBna4fSyPq0uuJplS9FASEE1t8YNobygSU
336
+
337
+ lesson_time
338
+
339
+ name
340
+
341
+ tel
342
+
343
+ radio
344
+
345
+ worry_comment
346
+
347
+ ```
348
+
349
+ 値は全部nullその前に保存してたものは項目すらない
350
+
351
+
352
+
129
353
  またcsrf対策をすると419エラーが出てしまうため419対策を抜いてみたら、sessionが保存されていないことに気がついた
130
354
 
131
355
  ### 試したこと

4

追記

2021/04/07 03:45

投稿

tomoki_at
tomoki_at

スコア6

test CHANGED
File without changes
test CHANGED
@@ -110,6 +110,20 @@
110
110
 
111
111
  ```
112
112
 
113
+ ```AppServiceProvider
114
+
115
+ public function boot(UrlGenerator $url)
116
+
117
+ {
118
+
119
+ //
120
+
121
+ $url->forceScheme('https');
122
+
123
+ }
124
+
125
+ ```
126
+
113
127
 
114
128
 
115
129
  またcsrf対策をすると419エラーが出てしまうため419対策を抜いてみたら、sessionが保存されていないことに気がついた

3

追記

2021/04/07 00:40

投稿

tomoki_at
tomoki_at

スコア6

test CHANGED
File without changes
test CHANGED
@@ -90,6 +90,30 @@
90
90
 
91
91
  ```
92
92
 
93
+
94
+
95
+ ```web
96
+
97
+ Route::get('/line','コントローラー名')->name('getpay');
98
+
99
+ ```
100
+
101
+
102
+
103
+ ```
104
+
105
+ //ここのformで投げた情報をsessionに記録して使いたい
106
+
107
+ <form method="get" action="{{ route('getpay') }}">
108
+
109
+ <form>
110
+
111
+ ```
112
+
113
+
114
+
115
+ またcsrf対策をすると419エラーが出てしまうため419対策を抜いてみたら、sessionが保存されていないことに気がついた
116
+
93
117
  ### 試したこと
94
118
 
95
119
  session_secure_SESSION_SECURE_COOKIE=true

2

追記

2021/04/07 00:33

投稿

tomoki_at
tomoki_at

スコア6

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  http環境では問題なく使えていました
10
10
 
11
- またlaravel/authのloginをするとトップページにリダイレクトされるでこれもこの辺が問題なのかなと思っています
11
+ またlaravel/authのloginができないのもこの辺が問題なのかなと思っています
12
12
 
13
13
 
14
14
 
@@ -24,6 +24,20 @@
24
24
 
25
25
 
26
26
 
27
+ Request
28
+
29
+ URL http://ドメイン名/line
30
+
31
+ Method GET
32
+
33
+
34
+
35
+ 個人的にhttpに今の挙動がhttps->http->https
36
+
37
+ というふうになってしまっているのかなと思ってます。そのためsessionがページ遷移ごとにきれ、使えてないということだと思います
38
+
39
+
40
+
27
41
  ### 該当のソースコード
28
42
 
29
43
 
@@ -31,6 +45,8 @@
31
45
  ```getController
32
46
 
33
47
  $user = session()->get('user');
48
+
49
+ $calendarId = $user->calendar_id; <-ここでエラー発生
34
50
 
35
51
  ```
36
52
 
@@ -82,6 +98,10 @@
82
98
 
83
99
  これでいけると思ったのが束の間できずに苦戦してます
84
100
 
101
+
102
+
103
+ AppServiceProvider.phpのbootに$url->forceScheme('https');を記述
104
+
85
105
  ### 補足情報(FW/ツールのバージョンなど)
86
106
 
87
107
 

1

追記

2021/04/07 00:14

投稿

tomoki_at
tomoki_at

スコア6

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,10 @@
5
5
  laravelで開発したシステムをSSL化したところsessionが使えなくなり下記のエラーが出ました
6
6
 
7
7
  sessionを使うことがゴールです
8
+
9
+ http環境では問題なく使えていました
10
+
11
+ またlaravel/authのloginをするとトップページにリダイレクトされるのでこれもこの辺が問題なのかなと思っています
8
12
 
9
13
 
10
14