質問編集履歴

5

書式の改善

2019/02/03 23:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -191,3 +191,75 @@
191
191
  }
192
192
 
193
193
  ```
194
+
195
+ ### 試してみたこと
196
+
197
+ 次のようにセッションのオプションを追加してみましたが、うまくいきませんでした。
198
+
199
+
200
+
201
+ /functions/index.js
202
+
203
+ ```express
204
+
205
+ // 省略
206
+
207
+ // オプション追加
208
+
209
+ const sess = {
210
+
211
+ store: new FirebaseStore({
212
+
213
+ database: ref.database()
214
+
215
+ }),
216
+
217
+ secret: 'secret_key',
218
+
219
+ resave: true,
220
+
221
+ saveUninitialized: true,
222
+
223
+ name: '__session',
224
+
225
+ cookie: {
226
+
227
+ maxAge: 1000 * 60 * 60, // 有効期間 1時間
228
+
229
+ secure: false, // true でもダメ
230
+
231
+ httpOnly: false
232
+
233
+ }
234
+
235
+ };
236
+
237
+
238
+
239
+ // 省略
240
+
241
+
242
+
243
+ app.use(cookieParser());
244
+
245
+ app.use(session(sess));
246
+
247
+
248
+
249
+ // カウンターでテスト(ページ更新ごとにプラス1)
250
+
251
+ app.get('/', (req, res) => {
252
+
253
+ req.session.counter = req.session.hasOwnProperty('counter') ? req.session.counter + 1 : 1;
254
+
255
+ res.send(`カウンター: ${req.session.counter} セッションID: ${req.sessionID}`);
256
+
257
+ });
258
+
259
+ ```
260
+
261
+ 結果はカウンターの値が1のまま変わらず、セッションIDの値だけが変化します。
262
+
263
+ 以前と同じで、データベースにはセッションの値は保存されるのですが、
264
+
265
+ ページを更新するたびに新しいセッションが追加されてしまいます。

4

書式の改善

2019/02/03 23:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -19,10 +19,6 @@
19
19
  --sess: "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"name\":\"yamada\"}"
20
20
 
21
21
  --type: "connect-session"
22
-
23
- けれども、ページをリロードすると、また別の新しいセッションができてしまいます。
24
-
25
- なんだかうまくクッキーを認識していないようです。
26
22
 
27
23
  ご存知の方いらっしゃいましたら、ぜひアドバイスをよろしくお願い致します。
28
24
 
@@ -184,9 +180,9 @@
184
180
 
185
181
  "sessions": {
186
182
 
187
- ".read": "false",
183
+ ".read": false,
188
184
 
189
- ".write": "false"
185
+ ".write": false
190
186
 
191
187
  }
192
188
 

3

書式の改善と修正

2019/02/02 21:02

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -132,9 +132,7 @@
132
132
 
133
133
  app.get('/test', (req, res) => {
134
134
 
135
- console.log('セッションの値:', req.session.name);
135
+ res.send(`セッションの値: ${req.session.name}`);
136
-
137
- res.send('test');
138
136
 
139
137
  });
140
138
 

2

書式の改善

2019/02/01 19:41

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,27 @@
4
4
 
5
5
  サーバー側の処理(Cloud Functions)で、セッションを使いたいのですが、うまくいきません。
6
6
 
7
- セッションに値を追加してundefined になります。
7
+ セッションに値を追加して取得しようとすると、undefined になります。
8
+
9
+ ただし、データベースには次のような感じで値が保存されています。
10
+
11
+ (セッションのキーをname、値をyamadaで追加した例)
12
+
13
+ sessions
14
+
15
+ --Ds-KX6DYOjGiaZ7qkmpH_O_JS1WQbJ8I
16
+
17
+ --expires: 1549045586962
18
+
19
+ --sess: "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"name\":\"yamada\"}"
20
+
21
+ --type: "connect-session"
22
+
23
+ けれども、ページをリロードすると、また別の新しいセッションができてしまいます。
24
+
25
+ なんだかうまくクッキーを認識していないようです。
26
+
27
+ ご存知の方いらっしゃいましたら、ぜひアドバイスをよろしくお願い致します。
8
28
 
9
29
  開発環境はCloud9です。
10
30
 
@@ -92,9 +112,9 @@
92
112
 
93
113
  secret: 'secret_key',
94
114
 
95
- resave: true,
115
+ resave: false,
96
116
 
97
- saveUninitialized: true
117
+ saveUninitialized: false
98
118
 
99
119
  }));
100
120
 

1

誤字

2019/02/01 14:12

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -106,7 +106,7 @@
106
106
 
107
107
  req.session.name = 'yamada';
108
108
 
109
- res.render('index');!
109
+ res.render('index');
110
110
 
111
111
  });
112
112
 
@@ -114,9 +114,7 @@
114
114
 
115
115
  console.log('セッションの値:', req.session.name);
116
116
 
117
- res.send('test');
117
+ res.send('test');
118
-
119
-
120
118
 
121
119
  });
122
120