ਕੂਕੀ ਬਣਾਉਣ ਵਿੱਚ JavaScript Date.now ਮੁੱਦੇ ਨੂੰ ਸਮਝਣਾ
JavaScript ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਕੂਕੀਜ਼ ਵਰਗੇ ਗਤੀਸ਼ੀਲ ਡੇਟਾ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਟਾਈਮਸਟੈਂਪਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ। ਦ Date.now() ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਅਕਸਰ ਮੌਜੂਦਾ ਟਾਈਮਸਟੈਂਪ ਨੂੰ ਮਿਲੀਸਕਿੰਟ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਕੂਕੀ ਬਣਾਉਣ ਵਰਗੇ ਕਾਰਜਾਂ ਲਈ ਇੱਕ ਵਿਲੱਖਣ ਪਛਾਣਕਰਤਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ। ਹਾਲਾਂਕਿ, ਕਈ ਵਾਰ ਅਜਿਹਾ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਡਿਵੈਲਪਰ ਇਸ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਅਚਾਨਕ ਵਿਵਹਾਰ ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹਨ।
ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇੱਕ ਆਮ ਮੁੱਦਾ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਡਿਵੈਲਪਰ ਵਰਤਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ Date.now() ਇੱਕ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਗਲਤ ਤਰੀਕੇ ਨਾਲ, ਜਿਸ ਨਾਲ ਪਰਿਭਾਸ਼ਿਤ ਨਤੀਜੇ ਨਿਕਲਦੇ ਹਨ। ਇਹ ਫੰਕਸ਼ਨ ਨੂੰ ਅਸਫਲ ਕਰਨ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਗਤੀਸ਼ੀਲ ਨਾਮਾਂ ਨਾਲ ਕੂਕੀਜ਼ ਬਣਾਉਂਦੇ ਹੋ। ਅਜਿਹੇ ਮੁੱਦਿਆਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਹੱਲ ਕਰਨ ਲਈ ਮੁੱਖ ਸਮੱਸਿਆ ਨੂੰ ਸਮਝਣਾ ਜ਼ਰੂਰੀ ਹੈ।
ਇੱਥੇ ਮੁੱਖ ਟੀਚਾ ਇੱਕ ਗਤੀਸ਼ੀਲ ਨਾਮ ਨਾਲ ਇੱਕ ਕੂਕੀ ਬਣਾਉਣਾ ਹੈ ਜਿਸ ਵਿੱਚ ਮੌਜੂਦਾ ਟਾਈਮਸਟੈਂਪ ਸ਼ਾਮਲ ਹੈ। ਅਜਿਹਾ ਕਰਨ ਨਾਲ, ਹਰੇਕ ਕੂਕੀ ਨੂੰ ਵਿਲੱਖਣ ਤੌਰ 'ਤੇ ਪਛਾਣਿਆ ਜਾਂਦਾ ਹੈ, ਬਿਹਤਰ ਡੇਟਾ ਟਰੈਕਿੰਗ ਅਤੇ ਸੈਸ਼ਨ ਪ੍ਰਬੰਧਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਫਿਰ ਵੀ, ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਲਾਗੂ ਕੀਤੇ ਬਿਨਾਂ Date.now(), ਇਸ ਪਹੁੰਚ ਨੂੰ ਤੋੜ ਸਕਦਾ ਹੈ.
ਹੇਠਾਂ ਦਿੱਤੇ ਭਾਗਾਂ ਵਿੱਚ, ਅਸੀਂ ਖੋਜ ਕਰਾਂਗੇ ਕਿ ਕਿਉਂ Date.now() ਵਿਧੀ ਇਸ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਵਾਪਸ ਆ ਸਕਦੀ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇੱਕ ਸਧਾਰਨ ਹੱਲ ਪੇਸ਼ ਕਰਾਂਗੇ ਕਿ ਤੁਹਾਡਾ ਕੂਕੀ ਬਣਾਉਣ ਦਾ ਕਾਰਜ ਨਿਰਵਿਘਨ ਕੰਮ ਕਰਦਾ ਹੈ।
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
Date.now() | Date.now() 1 ਜਨਵਰੀ, 1970 ਤੋਂ ਬਾਅਦ ਬੀਤ ਚੁੱਕੇ ਮਿਲੀਸਕਿੰਟਾਂ ਦੀ ਸੰਖਿਆ ਵਾਪਸ ਕਰਦਾ ਹੈ। ਇਸਦੀ ਵਰਤੋਂ ਗਤੀਸ਼ੀਲ ਕੂਕੀ ਨਾਮਾਂ ਲਈ ਵਿਲੱਖਣ ਟਾਈਮਸਟੈਂਪ ਬਣਾਉਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਕੂਕੀ ਨਾਮ ਡੁਪਲੀਕੇਸ਼ਨ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ। |
document.cookie | document.cookie = cookieName + "=" + saveData ਦੀ ਵਰਤੋਂ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਕੁਕੀ ਬਣਾਉਣ ਜਾਂ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਕੂਕੀ ਨੂੰ ਇੱਕ ਗਤੀਸ਼ੀਲ ਨਾਮ ਅਤੇ ਮੁੱਲ ਨਾਲ ਸੈੱਟ ਕਰਦਾ ਹੈ, ਜੋ ਸੈਸ਼ਨ-ਅਧਾਰਿਤ ਡੇਟਾ ਦੇ ਪ੍ਰਬੰਧਨ ਵਿੱਚ ਜ਼ਰੂਰੀ ਹੈ। |
res.cookie() | res.cookie() ਇੱਕ Express.js ਫੰਕਸ਼ਨ ਹੈ ਜੋ ਸਰਵਰ-ਸਾਈਡ 'ਤੇ ਕੂਕੀਜ਼ ਸੈੱਟ ਕਰਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ ਬੈਕਐਂਡ ਓਪਰੇਸ਼ਨਾਂ ਲਈ ਖਾਸ ਹੈ ਜਿੱਥੇ ਕੂਕੀਜ਼ ਨੂੰ ਸਰਵਰ ਤੋਂ ਕੰਟਰੋਲ ਕਰਨ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। |
app.use() | app.use() ਨੂੰ Express.js ਵਿੱਚ ਮਿਡਲਵੇਅਰ ਲੋਡ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਸੰਦਰਭ ਵਿੱਚ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ JSON ਅਤੇ URL-ਏਨਕੋਡ ਕੀਤੇ ਡੇਟਾ ਦੇ ਨਾਲ ਆਉਣ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਨੂੰ ਪਾਰਸ ਕੀਤਾ ਗਿਆ ਹੈ, ਕੂਕੀਜ਼ ਨੂੰ ਸੈੱਟ ਕਰਨ ਵੇਲੇ ਡਾਟਾ ਹੈਂਡਲਿੰਗ ਦੀ ਸਹੂਲਤ. |
maxAge | ਅਧਿਕਤਮ ਉਮਰ: 360000 ਮਿਆਦ (ਮਿਲੀਸਕਿੰਟ ਵਿੱਚ) ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਲਈ ਇੱਕ ਕੂਕੀ ਜਾਰੀ ਰਹੇਗੀ। ਇਹ ਕਮਾਂਡ ਕੂਕੀਜ਼ ਦੇ ਜੀਵਨ ਕਾਲ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਉਹਨਾਂ ਦੀ ਇੱਕ ਸੈਸ਼ਨ ਤੋਂ ਬਾਅਦ ਸਹੀ ਢੰਗ ਨਾਲ ਮਿਆਦ ਪੁੱਗ ਜਾਵੇ। |
request(app) | ਬੇਨਤੀ(ਐਪ) ਦੀ ਵਰਤੋਂ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਫਰੇਮਵਰਕ ਸੁਪਰਟੈਸਟ ਵਿੱਚ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਸਰਵਰ ਦੀ ਕੂਕੀ ਬਣਾਉਣ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ HTTP ਬੇਨਤੀਆਂ ਦੀ ਨਕਲ ਕਰਦਾ ਹੈ, ਇਹ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਕੂਕੀ ਟਾਈਮਸਟੈਂਪ ਨਾਲ ਸਹੀ ਢੰਗ ਨਾਲ ਸੈੱਟ ਕੀਤੀ ਗਈ ਹੈ। |
assert.match() | assert.match() ਇੱਕ ਚਾਈ ਅਸੈਸਸ਼ਨ ਵਿਧੀ ਹੈ ਜੋ ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟ ਵਿੱਚ ਵਰਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਕੂਕੀ ਦਾ ਨਾਮ ਇੱਕ ਖਾਸ ਨਿਯਮਿਤ ਸਮੀਕਰਨ ਪੈਟਰਨ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਟਾਈਮਸਟੈਂਪ ਕੂਕੀ ਦੇ ਨਾਮ ਵਿੱਚ ਸਹੀ ਤਰ੍ਹਾਂ ਏਮਬੇਡ ਕੀਤਾ ਗਿਆ ਹੈ। |
describe() | describe() ਮੋਚਾ ਦੇ ਟੈਸਟ ਫਰੇਮਵਰਕ ਦਾ ਹਿੱਸਾ ਹੈ, ਯੂਨਿਟ ਟੈਸਟ ਕੇਸਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਨਾ। ਇਹ ਟੈਸਟ ਸੂਟ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਕੂਕੀ ਬਣਾਉਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਸਮੱਸਿਆ ਲਈ ਖਾਸ ਹਨ। |
res.send() | res.send() ਕਲਾਇੰਟ ਨੂੰ ਇੱਕ ਜਵਾਬ ਵਾਪਸ ਭੇਜਦਾ ਹੈ। ਇਸ ਸੰਦਰਭ ਵਿੱਚ, ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕਿ ਇੱਕ ਕੂਕੀ ਸਫਲਤਾਪੂਰਵਕ ਸੈੱਟ ਕੀਤੀ ਗਈ ਹੈ, ਸਰਵਰ-ਸਾਈਡ ਤਰਕ ਵਿੱਚ ਫੀਡਬੈਕ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ। |
Date.now ਨਾਲ JavaScript ਕੂਕੀ ਰਚਨਾ ਦੀ ਪੜਚੋਲ ਕਰ ਰਿਹਾ ਹੈ
ਉਪਰੋਕਤ ਸਕ੍ਰਿਪਟ ਉਦਾਹਰਨਾਂ ਵਰਤਣ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਦੀਆਂ ਹਨ JavaScript ਦੀ Date.now() ਵਿਲੱਖਣ ਨਾਵਾਂ ਨਾਲ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਕੂਕੀਜ਼ ਬਣਾਉਣ ਲਈ ਫੰਕਸ਼ਨ। ਪਹਿਲੀ ਉਦਾਹਰਨ ਵਿੱਚ, ਇੱਕ ਫਰੰਟ-ਐਂਡ ਸਕ੍ਰਿਪਟ ਨੂੰ ਇੱਕ ਨਾਮ ਦੇ ਨਾਲ ਇੱਕ ਕੂਕੀ ਬਣਾਉਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ ਜਿਸ ਵਿੱਚ ਮੌਜੂਦਾ ਟਾਈਮਸਟੈਂਪ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਵਰਤ ਕੇ ਕੀਤਾ ਗਿਆ ਹੈ Date.now() ਵਿਧੀ, ਜੋ ਕਿ 1 ਜਨਵਰੀ, 1970 ਤੋਂ ਮਿਲੀਸਕਿੰਟ ਦੀ ਸੰਖਿਆ ਵਾਪਸ ਕਰਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਇੱਕ ਭਰੋਸੇਯੋਗ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ ਕਿ ਹਰੇਕ ਕੂਕੀ ਦਾ ਇੱਕ ਵਿਲੱਖਣ ਨਾਮ ਹੋਵੇ। ਇਹ ਵਿਧੀ ਕੂਕੀ ਨਾਮ ਦੇ ਟਕਰਾਅ ਤੋਂ ਬਚਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਜੋ ਕਿ ਉਦੋਂ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਇੱਕ ਸੈਸ਼ਨ ਦੌਰਾਨ ਕਈ ਕੂਕੀਜ਼ ਬਣਾਈਆਂ ਜਾਂਦੀਆਂ ਹਨ।
Date.now() ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਸਕ੍ਰਿਪਟ ਵੀ ਕੰਮ ਕਰਦੀ ਹੈ document.cookie ਕੂਕੀ ਨੂੰ ਕਲਾਇੰਟ ਸਾਈਡ 'ਤੇ ਸਟੋਰ ਕਰਨ ਲਈ ਕਮਾਂਡ. ਇਹ ਕਮਾਂਡ ਬ੍ਰਾਊਜ਼ਰ ਕੂਕੀਜ਼ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਕੁੰਜੀ ਹੈ, ਜਿਸ ਨਾਲ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਕੂਕੀਜ਼ ਦਾ ਨਾਮ, ਮੁੱਲ ਅਤੇ ਮਿਆਦ ਸੈੱਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲਦੀ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਕੂਕੀ 360 ਸਕਿੰਟਾਂ ਬਾਅਦ ਮਿਆਦ ਪੁੱਗਣ ਲਈ ਸੈੱਟ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਜੋ ਕਿ ਨਿਰਧਾਰਤ ਕਰਕੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਧਿਕਤਮ-ਉਮਰ ਕੂਕੀ ਸਤਰ ਵਿੱਚ. ਇਹ ਉਦਾਹਰਨ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਕਿਵੇਂ ਕਲਾਇੰਟ-ਸਾਈਡ JavaScript ਨੂੰ ਸੈਸ਼ਨ ਡੇਟਾ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਇੰਟਰੈਕਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਸਹੀ ਕੂਕੀ ਹੈਂਡਲਿੰਗ ਨੂੰ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।
ਬੈਕ-ਐਂਡ ਵਾਲੇ ਪਾਸੇ, ਇੱਕ ਸਮਾਨ ਪਹੁੰਚ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ Node.js ਅਤੇ ਸਰਵਰ 'ਤੇ ਕੂਕੀਜ਼ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ Express.js. ਦ res.cookie() ਫੰਕਸ਼ਨ ਇੱਥੇ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਸਰਵਰ ਨੂੰ ਗਾਹਕ ਨੂੰ ਸੈੱਟ-ਕੂਕੀ ਸਿਰਲੇਖ ਭੇਜਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਵਿੱਚ ਕੂਕੀ ਨੂੰ ਆਪਣੇ ਆਪ ਸਟੋਰ ਕਰਦਾ ਹੈ। ਇਹ ਪਹੁੰਚ ਸਰਵਰ-ਸਾਈਡ ਸੈਸ਼ਨ ਪ੍ਰਬੰਧਨ ਲਈ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੈ, ਜਿੱਥੇ ਆਉਣ ਵਾਲੀਆਂ ਬੇਨਤੀਆਂ ਦੇ ਆਧਾਰ 'ਤੇ ਕੂਕੀਜ਼ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਬਣਾਈਆਂ ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ। ਕੂਕੀ ਨਾਮ ਵਿੱਚ ਟਾਈਮਸਟੈਂਪ ਸ਼ਾਮਲ ਕਰਨ ਲਈ Date.now() ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਸਰਵਰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਹਰੇਕ ਸੈਸ਼ਨ ਦੀ ਵਿਲੱਖਣ ਪਛਾਣ ਕੀਤੀ ਗਈ ਹੈ।
ਇਹਨਾਂ ਲਾਗੂਕਰਨਾਂ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ, ਯੂਨਿਟ ਟੈਸਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਣਾਏ ਗਏ ਹਨ ਮੋਚਾ ਅਤੇ ਚਾਈ ਫਰੰਟ-ਐਂਡ ਲਈ, ਅਤੇ ਸੁਪਰਟੈਸਟ ਬੈਕ-ਐਂਡ ਲਈ। ਇਹ ਟੈਸਟ ਜਾਂਚ ਕਰਦੇ ਹਨ ਕਿ ਕੀ ਕੂਕੀਜ਼ ਸਹੀ ਢੰਗ ਨਾਲ ਬਣਾਈਆਂ ਅਤੇ ਸਟੋਰ ਕੀਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਯੂਨਿਟ ਟੈਸਟ ਕੂਕੀ ਦੇ ਨਾਵਾਂ ਨਾਲ ਮੇਲ ਕਰਨ ਅਤੇ ਟਾਈਮਸਟੈਂਪਾਂ ਨਾਲ ਉਹਨਾਂ ਦੀ ਸਹੀ ਰਚਨਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਦਾਅਵੇ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਹੱਲ ਮਜਬੂਤ ਹੈ ਅਤੇ ਉਤਪਾਦਨ ਦੇ ਵਾਤਾਵਰਨ ਵਿੱਚ ਭਰੋਸੇ ਨਾਲ ਤਾਇਨਾਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਯੂਨਿਟ ਟੈਸਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਕੇ, ਡਿਵੈਲਪਰ ਸੰਭਾਵੀ ਮੁੱਦਿਆਂ ਨੂੰ ਜਲਦੀ ਫੜ ਸਕਦੇ ਹਨ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ ਕਿ ਕੂਕੀਜ਼ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਉਮੀਦ ਅਨੁਸਾਰ ਵਿਹਾਰ ਕਰਦੀਆਂ ਹਨ।
ਕੂਕੀ ਬਣਾਉਣ ਵਿੱਚ JavaScript Date.now ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨਾ ਠੀਕ ਕਰਨਾ
JavaScript (Vanilla JS) - ਫਰੰਟ-ਐਂਡ ਸਕ੍ਰਿਪਟ
// Frontend solution using JavaScript and Date.now to create cookies correctly
// Problem: timestamp.now is undefined because Date() doesn’t have a 'now' property
// Solution: Use Date.now() for correct timestamp and dynamic cookie creation
// Function to save the data in a cookie with a timestamp
function save(saveData) {
// Get the current timestamp in milliseconds
let timestamp = Date.now();
// Construct the cookie name dynamically
let cookieName = "test" + timestamp;
// Set the cookie (you can use your own cookie library or direct JavaScript)
document.cookie = cookieName + "=" + saveData + "; max-age=360; path=/";
}
// Example usage: save("session data") will create a cookie like 'test123456789=session data'
save("session data");
// Note: Ensure the max-age and path match your needs. 'max-age=360' sets the cookie to last 360 seconds.
ਬੈਕਐਂਡ ਹੱਲ: ਕੂਕੀਜ਼ ਨੂੰ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਸੈੱਟ ਕਰਨ ਲਈ Node.js ਦੀ ਵਰਤੋਂ ਕਰਨਾ
Node.js - Express.js ਨਾਲ ਬੈਕ-ਐਂਡ ਸਕ੍ਰਿਪਟ
// Backend solution for dynamic cookie creation using Node.js and Express.js
// Requires Node.js and the Express framework to handle HTTP requests and responses
// Import necessary modules
const express = require('express');
const app = express();
const port = 3000;
// Middleware to parse JSON and URL-encoded data
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// Route to create a dynamic cookie with a timestamp
app.post('/set-cookie', (req, res) => {
const saveData = req.body.saveData || "defaultData";
const timestamp = Date.now();
const cookieName = "test" + timestamp;
// Set the cookie with HTTP response
res.cookie(cookieName, saveData, { maxAge: 360000, httpOnly: true });
res.send(`Cookie ${cookieName} set successfully`);
});
// Start the server
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
// You can test this by sending a POST request to '/set-cookie' with 'saveData' in the body
ਕੂਕੀ ਰਚਨਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟ (ਫਰੰਟ-ਐਂਡ)
JavaScript - ਮੋਚਾ ਅਤੇ ਚਾਈ ਨਾਲ ਯੂਨਿਟ ਟੈਸਟ
// Unit test to validate the functionality of save() using Mocha and Chai
const assert = require('chai').assert;
describe('save function', () => {
it('should create a cookie with a valid timestamp', () => {
// Mock document.cookie
global.document = { cookie: '' };
save('testData');
assert.match(document.cookie, /test\d+=testData/);
});
});
ਕੂਕੀ ਰਚਨਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਯੂਨਿਟ ਟੈਸਟ (ਬੈਕ-ਐਂਡ)
Node.js - ਸੁਪਰਟੈਸਟ ਅਤੇ ਮੋਚਾ ਦੇ ਨਾਲ ਯੂਨਿਟ ਟੈਸਟ
// Unit test to validate dynamic cookie creation in Express.js
const request = require('supertest');
const express = require('express');
const app = require('./app'); // Assuming the above app is saved in app.js
describe('POST /set-cookie', () => {
it('should set a cookie with a timestamp', (done) => {
request(app)
.post('/set-cookie')
.send({ saveData: 'testData' })
.expect('set-cookie', /test\d+=testData/)
.expect(200, done);
});
});
JavaScript ਵਿੱਚ ਕੂਕੀ ਪ੍ਰਬੰਧਨ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਉਣਾ
JavaScript ਵਿੱਚ ਕੂਕੀ ਪ੍ਰਬੰਧਨ ਦੇ ਇੱਕ ਹੋਰ ਮੁੱਖ ਪਹਿਲੂ ਵਿੱਚ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਸ਼ਾਮਲ ਹੈ ਕਿ ਕੂਕੀਜ਼ ਹਨ ਸੁਰੱਖਿਅਤ ਅਤੇ ਗੋਪਨੀਯਤਾ ਨਿਯਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ। ਕੂਕੀਜ਼ ਬਣਾਉਂਦੇ ਸਮੇਂ, ਖਾਸ ਤੌਰ 'ਤੇ ਸੰਵੇਦਨਸ਼ੀਲ ਡੇਟਾ ਵਾਲੇ, ਸੁਰੱਖਿਆ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ ਜਿਵੇਂ ਕਿ ਸਿਰਫ਼ Http ਅਤੇ ਸੁਰੱਖਿਅਤ. HttpOnly ਵਿਸ਼ੇਸ਼ਤਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਕੂਕੀ ਨੂੰ JavaScript ਦੁਆਰਾ ਐਕਸੈਸ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਜੋ ਕਿ ਜੋਖਮ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ XSS (ਕਰਾਸ-ਸਾਈਟ ਸਕ੍ਰਿਪਟਿੰਗ) ਹਮਲੇ. ਇਸੇ ਤਰ੍ਹਾਂ, ਸੁਰੱਖਿਅਤ ਵਿਸ਼ੇਸ਼ਤਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ ਕਿ ਕੂਕੀ ਸਿਰਫ਼ HTTPS ਕਨੈਕਸ਼ਨਾਂ 'ਤੇ ਭੇਜੀ ਗਈ ਹੈ, ਇਸ ਨੂੰ ਅਸੁਰੱਖਿਅਤ ਨੈੱਟਵਰਕਾਂ 'ਤੇ ਪ੍ਰਸਾਰਿਤ ਹੋਣ ਤੋਂ ਬਚਾਉਂਦੀ ਹੈ।
ਸੁਰੱਖਿਆ ਤੋਂ ਪਰੇ, ਕੂਕੀਜ਼ ਲਈ ਸਹੀ ਮਿਆਦ ਪੁੱਗਣ ਦਾ ਸਮਾਂ ਸੈਟ ਕਰਨਾ ਸੈਸ਼ਨ ਦੀ ਨਿਰੰਤਰਤਾ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਵਰਗੇ ਗੁਣਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੱਧ ਤੋਂ ਵੱਧ ਉਮਰ ਜਾਂ ਮਿਆਦ ਪੁੱਗਦੀ ਹੈ, ਡਿਵੈਲਪਰ ਇਹ ਨਿਯੰਤਰਿਤ ਕਰ ਸਕਦੇ ਹਨ ਕਿ ਕੁਕੀ ਕਿੰਨੀ ਦੇਰ ਤੱਕ ਵੈਧ ਰਹਿੰਦੀ ਹੈ। ਥੋੜ੍ਹੇ ਸਮੇਂ ਦੇ ਸੈਸ਼ਨਾਂ ਲਈ, ਅਧਿਕਤਮ-ਉਮਰ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੁੰਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਕੁਕੀ ਬਣਾਏ ਜਾਣ ਤੋਂ ਸਕਿੰਟਾਂ ਵਿੱਚ ਸਮਾਂ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ। ਦੂਜੇ ਪਾਸੇ, ਮਿਆਦ ਪੁੱਗਣ ਵਾਲੀ ਵਿਸ਼ੇਸ਼ਤਾ ਕੂਕੀ ਦੀ ਮਿਆਦ ਪੁੱਗਣ ਲਈ ਇੱਕ ਖਾਸ ਮਿਤੀ ਅਤੇ ਸਮਾਂ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ, ਸੈਸ਼ਨ ਦੀ ਲੰਬਾਈ 'ਤੇ ਵਧੇਰੇ ਨਿਯੰਤਰਣ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।
ਆਧੁਨਿਕ ਵੈੱਬ ਵਿਕਾਸ ਵਿੱਚ, ਵੱਖੋ-ਵੱਖਰੀਆਂ ਕੂਕੀ ਨੀਤੀਆਂ ਦੇ ਕਾਰਨ ਵੱਖ-ਵੱਖ ਬ੍ਰਾਊਜ਼ਰਾਂ ਵਿੱਚ ਕੂਕੀਜ਼ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨਾ ਚੁਣੌਤੀਪੂਰਨ ਹੋ ਸਕਦਾ ਹੈ। ਨੂੰ ਸਮਝਣਾ ਅਤੇ ਲਾਗੂ ਕਰਨਾ ਮਹੱਤਵਪੂਰਨ ਹੈ ਸਮਾਨ ਸਾਈਟ ਵਿਸ਼ੇਸ਼ਤਾ, ਜੋ ਇਹ ਨਿਯੰਤਰਿਤ ਕਰਦੀ ਹੈ ਕਿ ਕ੍ਰਾਸ-ਸਾਈਟ ਬੇਨਤੀਆਂ ਦੇ ਨਾਲ ਕੂਕੀਜ਼ ਭੇਜੀਆਂ ਜਾਂਦੀਆਂ ਹਨ ਜਾਂ ਨਹੀਂ। ਇਹ ਰੋਕਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਸੀ.ਐਸ.ਆਰ.ਐਫ (ਕਰਾਸ-ਸਾਈਟ ਬੇਨਤੀ ਜਾਅਲਸਾਜ਼ੀ) ਬਾਹਰੀ ਸਾਈਟ ਬੇਨਤੀਆਂ ਨਾਲ ਕੂਕੀਜ਼ ਅਟੈਚ ਹੋਣ 'ਤੇ ਸੀਮਤ ਕਰਕੇ ਹਮਲੇ ਕਰਦੇ ਹਨ। SameSite ਨੂੰ ਸਖਤ ਜਾਂ ਢਿੱਲ 'ਤੇ ਸੈੱਟ ਕਰਕੇ, ਡਿਵੈਲਪਰ ਅਣਅਧਿਕਾਰਤ ਸਾਈਟਾਂ ਨੂੰ ਉਪਭੋਗਤਾ ਦੀਆਂ ਕੂਕੀਜ਼ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਰੋਕ ਸਕਦੇ ਹਨ, ਸਮੁੱਚੀ ਸੁਰੱਖਿਆ ਅਤੇ ਗੋਪਨੀਯਤਾ ਨੂੰ ਬਿਹਤਰ ਬਣਾ ਸਕਦੇ ਹਨ।
JavaScript ਕੂਕੀਜ਼ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- ਕੀ ਕਰਦਾ ਹੈ Date.now() ਵਾਪਸੀ?
- Date.now() ਮੌਜੂਦਾ ਟਾਈਮਸਟੈਂਪ ਨੂੰ ਮਿਲੀਸਕਿੰਟ ਵਿੱਚ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਵਿਲੱਖਣ ਕੂਕੀ ਨਾਂ ਬਣਾਉਣ ਲਈ ਉਪਯੋਗੀ ਹੈ।
- ਮੈਂ JavaScript ਵਿੱਚ ਕੂਕੀਜ਼ ਨੂੰ ਕਿਵੇਂ ਸੁਰੱਖਿਅਤ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਤੁਸੀਂ ਕੂਕੀਜ਼ ਨੂੰ ਜੋੜ ਕੇ ਸੁਰੱਖਿਅਤ ਕਰ ਸਕਦੇ ਹੋ HttpOnly ਅਤੇ Secure ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ, ਜੋ JavaScript ਪਹੁੰਚ ਨੂੰ ਰੋਕਦੀਆਂ ਹਨ ਅਤੇ HTTPS ਉੱਤੇ ਸੰਚਾਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੀਆਂ ਹਨ।
- ਵਿਚਕਾਰ ਕੀ ਫਰਕ ਹੈ max-age ਅਤੇ expires?
- max-age ਕੂਕੀ ਦੇ ਜੀਵਨ ਕਾਲ ਨੂੰ ਸਕਿੰਟਾਂ ਵਿੱਚ ਸੈੱਟ ਕਰਦਾ ਹੈ, ਜਦਕਿ expires ਤੁਹਾਨੂੰ ਇੱਕ ਸਹੀ ਮਿਆਦ ਪੁੱਗਣ ਦੀ ਮਿਤੀ ਅਤੇ ਸਮਾਂ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
- ਕਿਵੇਂ ਕਰਦਾ ਹੈ SameSite ਗੁਣ ਕੰਮ?
- ਦ SameSite ਵਿਸ਼ੇਸ਼ਤਾ ਸੀਐਸਆਰਐਫ ਦੇ ਹਮਲਿਆਂ ਤੋਂ ਬਚਾਅ ਕਰਦੇ ਹੋਏ, ਕ੍ਰਾਸ-ਸਾਈਟ ਬੇਨਤੀਆਂ ਨਾਲ ਕੂਕੀਜ਼ ਭੇਜੀਆਂ ਜਾਣ ਜਾਂ ਨਹੀਂ, ਇਸ 'ਤੇ ਪਾਬੰਦੀ ਲਗਾਉਂਦੀ ਹੈ।
- ਕੀ ਮੈਂ Node.js ਨਾਲ ਕੂਕੀਜ਼ ਸਰਵਰ-ਸਾਈਡ ਸੈਟ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਹਾਂ, ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ res.cookie() ਸਰਵਰ-ਸਾਈਡ 'ਤੇ ਕੂਕੀਜ਼ ਸੈੱਟ ਕਰਨ ਲਈ Node.js ਵਿੱਚ ਫੰਕਸ਼ਨ।
ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਕੂਕੀ ਬਣਾਉਣ ਬਾਰੇ ਅੰਤਿਮ ਵਿਚਾਰ
JavaScript ਨਾਲ ਡਾਇਨਾਮਿਕ ਕੂਕੀਜ਼ ਬਣਾਉਣ ਲਈ ਦੀ ਸਹੀ ਵਰਤੋਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ Date.now() ਪਰਿਭਾਸ਼ਿਤ ਨਤੀਜਿਆਂ ਤੋਂ ਬਚਣ ਲਈ ਫੰਕਸ਼ਨ. ਟਾਈਮਸਟੈਂਪ ਦੀ ਸਹੀ ਵਰਤੋਂ ਕਰਕੇ, ਤੁਸੀਂ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋ ਕਿ ਹਰੇਕ ਕੂਕੀ ਦਾ ਨਾਮ ਵਿਲੱਖਣ ਹੈ, ਜੋ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਸੈਸ਼ਨ ਪ੍ਰਬੰਧਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
ਇਸ ਤੋਂ ਇਲਾਵਾ, HttpOnly, Secure, ਅਤੇ SameSite ਵਰਗੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੂਕੀਜ਼ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ। ਇਹ ਅਭਿਆਸ ਕੂਕੀਜ਼ ਦੀ ਗੋਪਨੀਯਤਾ ਅਤੇ ਸੁਰੱਖਿਆ ਦੋਵਾਂ ਨੂੰ ਵਧਾਉਂਦੇ ਹਨ, ਖਾਸ ਕਰਕੇ ਜਦੋਂ ਆਧੁਨਿਕ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਸੰਵੇਦਨਸ਼ੀਲ ਉਪਭੋਗਤਾ ਡੇਟਾ ਨਾਲ ਨਜਿੱਠਦੇ ਹਨ।
JavaScript ਕੂਕੀ ਬਣਾਉਣ ਲਈ ਹਵਾਲੇ ਅਤੇ ਸਰੋਤ
- ਇਹ ਸਰੋਤ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ Date.now() ਵੱਖ-ਵੱਖ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਵਿਲੱਖਣ ਟਾਈਮਸਟੈਂਪ ਬਣਾਉਣ ਲਈ JavaScript ਵਿੱਚ। 'ਤੇ ਹੋਰ ਵੇਰਵੇ ਲੱਭੇ ਜਾ ਸਕਦੇ ਹਨ MDN ਵੈੱਬ ਡੌਕਸ: Date.now() .
- ਵਿੱਚ ਫਰੰਟ-ਐਂਡ ਅਤੇ ਬੈਕ-ਐਂਡ ਦੋਵਾਂ ਤਰੀਕਿਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਕੂਕੀਜ਼ ਨੂੰ ਸੈੱਟ ਕਰਨ ਅਤੇ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਇੱਕ ਡੂੰਘਾਈ ਨਾਲ ਗਾਈਡ JavaScript ਅਤੇ Node.js 'ਤੇ ਪਾਇਆ ਜਾ ਸਕਦਾ ਹੈ Express.js: res.cookie() .
- HttpOnly, Secure, ਅਤੇ SameSite ਫਲੈਗ ਸਮੇਤ, ਕੁਕੀਜ਼ ਨਾਲ ਸਬੰਧਿਤ ਸੁਰੱਖਿਆ ਦੇ ਬਿਹਤਰੀਨ ਅਭਿਆਸਾਂ ਲਈ, 'ਤੇ ਜਾਓ OWASP: ਸੁਰੱਖਿਅਤ ਕੂਕੀ ਗੁਣ .