ਪ੍ਰਮਾਣੀਕਰਨ ਕੀ ਹੈ? ਲੌਗਇਨ, ਸੈਸ਼ਨ ਅਤੇ OAuth ਸਰਲ ਭਾਸ਼ਾ ਵਿੱਚ
ਪ੍ਰਮਾਣੀਕਰਨ ਉਹ ਤਰੀਕਾ ਹੈ ਜਿਸ ਨਾਲ ਐਪ ਤਸਦੀਕ ਕਰਦੀ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਕੌਣ ਹੈ। ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਕਿਸੇ ਚੀਜ਼ ਦੀ ਜਾਂਚ ਕਰਕੇ ਹੁੰਦਾ ਹੈ ਜੋ ਉਹ ਜਾਣਦਾ ਹੈ (ਪਾਸਵਰਡ), ਜੋ ਉਸ ਕੋਲ ਹੈ (ਫ਼ੋਨ ਜਾਂ ਈਮੇਲ 'ਤੇ ਭੇਜਿਆ ਕੋਡ), ਜਾਂ ਕਿਸੇ ਭਰੋਸੇਯੋਗ ਹੋਰ ਸੇਵਾ ਦੀ ਪਛਾਣ (ਜਿਵੇਂ "Google ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ")। ਇੱਕ ਵਾਰ ਉਪਭੋਗਤਾ ਦੀ ਪਛਾਣ ਹੋ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਐਪ ਉਸਨੂੰ ਸੈਸ਼ਨ ਜਾਂ ਟੋਕਨ ਰਾਹੀਂ ਯਾਦ ਰੱਖਦੀ ਹੈ, ਤਾਂ ਜੋ ਹਰ ਪੰਨੇ 'ਤੇ ਦੁਬਾਰਾ ਲੌਗਇਨ ਨਾ ਕਰਨਾ ਪਵੇ। ਇਹ ਤੈਅ ਕਰਨਾ ਕਿ ਉਹ ਜਾਣਿਆ-ਪਛਾਣਿਆ ਉਪਭੋਗਤਾ ਕੀ ਕਰ ਸਕਦਾ ਹੈ, ਇੱਕ ਵੱਖਰਾ ਕਦਮ ਹੈ ਜਿਸਨੂੰ ਅਧਿਕਾਰ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।
AI ਨਾਲ ਐਪ ਬਣਾਉਂਦੇ ਸਮੇਂ ਇਹ ਕਿਉਂ ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ
ਲੌਗਇਨ ਜੋੜਨਾ ਉਹਨਾਂ ਸਭ ਤੋਂ ਆਮ ਬੇਨਤੀਆਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ ਜੋ ਲੋਕ AI ਐਪ ਬਿਲਡਰ ਤੋਂ ਕਰਦੇ ਹਨ, ਅਤੇ ਇਹ ਸੂਖਮ ਤਰੀਕਿਆਂ ਨਾਲ ਗ਼ਲਤ ਹੋਣਾ ਵੀ ਆਸਾਨ ਹੈ। ਲੌਗਇਨ ਪੰਨਾ ਬਣਾਉਣਾ ਸੌਖਾ ਹੈ। ਔਖਾ ਹਿੱਸਾ ਉਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੀਆਂ ਗੱਲਾਂ ਹਨ:
- ਕੀ ਪਾਸਵਰਡ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸਟੋਰ ਹੁੰਦੇ ਹਨ?
- ਕੀ ਹਰ ਨਿੱਜੀ ਪੰਨਾ ਅਤੇ ਹਰ API ਐਂਡਪੌਇੰਟ ਅਸਲ ਵਿੱਚ ਜਾਂਚਦਾ ਹੈ ਕਿ ਬੇਨਤੀ ਕੌਣ ਕਰ ਰਿਹਾ ਹੈ?
- ਕੀ ਲੌਗਇਨ ਕੀਤਾ ਗਾਹਕ URL ਵਿੱਚ ਨੰਬਰ ਬਦਲ ਕੇ ਕਿਸੇ ਹੋਰ ਗਾਹਕ ਦਾ ਡੇਟਾ ਵੇਖ ਸਕਦਾ ਹੈ?
- ਜਦੋਂ ਕੋਈ ਪਾਸਵਰਡ ਭੁੱਲ ਜਾਵੇ ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ?
ਕੋਈ ਐਪ ਬਾਹਰੋਂ ਬਿਲਕੁਲ ਸੁਰੱਖਿਅਤ ਲੱਗ ਸਕਦੀ ਹੈ ਅਤੇ ਫਿਰ ਵੀ ਇਹਨਾਂ ਸਾਰਿਆਂ ਵਿੱਚ ਫ਼ੇਲ੍ਹ ਹੋ ਸਕਦੀ ਹੈ। ਚਲਦੇ ਹਿੱਸਿਆਂ ਨੂੰ ਸਮਝਣਾ ਤੁਹਾਨੂੰ ਸਹੀ ਸਵਾਲ ਪੁੱਛਣ ਅਤੇ ਸਹੀ ਚੀਜ਼ਾਂ ਟੈਸਟ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
ਰੋਜ਼ਾਨਾ ਜੀਵਨ ਦੀ ਮਿਸਾਲ
ਕਿਸੇ ਹੋਟਲ ਵਿੱਚ ਚੈੱਕ-ਇਨ ਕਰਨ ਬਾਰੇ ਸੋਚੋ।
ਫ਼ਰੰਟ ਡੈਸਕ 'ਤੇ ਤੁਸੀਂ ਆਪਣਾ ਪਛਾਣ ਪੱਤਰ ਦਿਖਾਉਂਦੇ ਹੋ। ਇਹ ਪ੍ਰਮਾਣੀਕਰਨ ਹੈ: ਸਾਬਤ ਕਰਨਾ ਕਿ ਤੁਸੀਂ ਕੌਣ ਹੋ। ਫਿਰ ਰਿਸੈਪਸ਼ਨਿਸਟ ਤੁਹਾਨੂੰ ਇੱਕ ਕਾਰਡ ਦਿੰਦਾ ਹੈ। ਉਹ ਕਾਰਡ ਤੁਹਾਡਾ ਸੈਸ਼ਨ ਹੈ: ਠਹਿਰਨ ਦੇ ਬਾਕੀ ਸਮੇਂ ਲਈ ਤੁਹਾਨੂੰ ਦੁਬਾਰਾ ਪਛਾਣ ਨਹੀਂ ਦਿਖਾਉਣੀ ਪੈਂਦੀ; ਤੁਸੀਂ ਸਿਰਫ਼ ਕਾਰਡ ਟੈਪ ਕਰਦੇ ਹੋ।
ਉਹ ਕਾਰਡ ਤੁਹਾਡਾ ਕਮਰਾ, ਜਿਮ ਅਤੇ ਤੁਹਾਡੀ ਮੰਜ਼ਿਲ ਦੀ ਲਿਫ਼ਟ ਖੋਲ੍ਹਦਾ ਹੈ, ਪਰ ਹੋਰ ਮਹਿਮਾਨਾਂ ਦੇ ਕਮਰੇ ਜਾਂ ਸਟਾਫ਼ ਦਫ਼ਤਰ ਨਹੀਂ। ਇਹ ਅਧਿਕਾਰ ਹੈ: ਤੁਹਾਡੀ ਪਛਾਣ ਕੀ ਵਰਤ ਸਕਦੀ ਹੈ। ਜੇ ਕਾਰਡ ਗੁਆਚ ਜਾਵੇ, ਤਾਂ ਹੋਟਲ ਡੈਸਕ 'ਤੇ ਉਸਨੂੰ ਬੰਦ ਕਰ ਸਕਦਾ ਹੈ (ਸੈਸ਼ਨ ਰੱਦ ਕਰਨਾ)। ਚੈੱਕ-ਆਊਟ ਕਰਨ 'ਤੇ ਉਹ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ (ਲੌਗਆਊਟ ਜਾਂ ਮਿਆਦ ਖ਼ਤਮ ਹੋਣਾ)।
"Google ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ" ਇਸ ਤਰ੍ਹਾਂ ਹੈ ਜਿਵੇਂ ਹੋਟਲ ਇੱਕ ਭਰੋਸੇਯੋਗ ਭਾਈਵਾਲ ਦੀ ਚਿੱਠੀ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ ਜੋ ਕਹਿੰਦੀ ਹੈ "ਇਹ ਇਹ ਵਿਅਕਤੀ ਹੈ", ਨਾ ਕਿ ਤੁਹਾਡਾ ਆਈਡੀ ਖ਼ੁਦ ਜਾਂਚਣਾ।
ਮੁੱਖ ਲੌਗਇਨ ਤਰੀਕੇ
| ਤਰੀਕਾ | ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ | ਫ਼ਾਇਦੇ | ਨੁਕਸਾਨ |
|---|---|---|---|
| ਈਮੇਲ + ਪਾਸਵਰਡ | ਉਪਭੋਗਤਾ ਪਾਸਵਰਡ ਚੁਣਦਾ ਹੈ; ਐਪ ਉਸਦਾ ਹੈਸ਼ ਸਟੋਰ ਕਰਦੀ ਹੈ | ਜਾਣਿਆ-ਪਛਾਣਿਆ, ਕੋਈ ਬਾਹਰੀ ਨਿਰਭਰਤਾ ਨਹੀਂ | ਹੈਸ਼ ਸੁਰੱਖਿਅਤ ਰੱਖਣੇ ਅਤੇ ਰੀਸੈੱਟ ਸੰਭਾਲਣੇ ਪੈਂਦੇ ਹਨ |
| ਮੈਜਿਕ ਲਿੰਕ / ਇੱਕ ਵਾਰ ਵਾਲਾ ਕੋਡ | ਐਪ ਈਮੇਲ ਰਾਹੀਂ ਲਿੰਕ ਜਾਂ ਕੋਡ ਭੇਜਦੀ ਹੈ ਜੋ ਉਪਭੋਗਤਾ ਨੂੰ ਲੌਗਇਨ ਕਰਦਾ ਹੈ | ਕੋਈ ਪਾਸਵਰਡ ਲੀਕ ਜਾਂ ਭੁੱਲਣ ਦਾ ਖ਼ਤਰਾ ਨਹੀਂ | ਈਮੇਲ ਡਿਲੀਵਰੀ 'ਤੇ ਨਿਰਭਰ; ਲੌਗਇਨ ਹੌਲਾ |
| ਸੋਸ਼ਲ ਲੌਗਇਨ (OAuth / OpenID Connect) | ਉਪਭੋਗਤਾ Google, Apple, GitHub ਆਦਿ ਨਾਲ ਸਾਈਨ ਇਨ ਕਰਦਾ ਹੈ | ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਤੇਜ਼; ਤੁਹਾਡੇ ਵੱਲੋਂ ਕੋਈ ਪਾਸਵਰਡ ਸਟੋਰ ਨਹੀਂ | ਹਰ ਪ੍ਰਦਾਤਾ ਨਾਲ ਵੱਖਰਾ ਸੈਟਅੱਪ; ਜਿਨ੍ਹਾਂ ਕੋਲ ਉਹ ਖਾਤੇ ਨਹੀਂ ਉਹ ਰੁਕਾਵਟ ਮਹਿਸੂਸ ਕਰਦੇ ਹਨ |
| ਹੋਸਟਡ ਪ੍ਰਮਾਣੀਕਰਨ ਪ੍ਰਦਾਤਾ | Clerk, Auth0 ਜਾਂ Supabase Auth ਵਰਗੀ ਸੇਵਾ ਸਾਈਨ-ਅੱਪ, ਲੌਗਇਨ ਅਤੇ ਰੀਸੈੱਟ ਸੰਭਾਲਦੀ ਹੈ | ਤੁਹਾਡੇ ਲਈ ਸੁਰੱਖਿਆ ਦਾ ਕੰਮ ਘੱਟ | ਵੱਡੇ ਪੈਮਾਨੇ 'ਤੇ ਮਹੀਨਾਵਾਰ ਖ਼ਰਚਾ; ਇੱਕ ਹੋਰ ਨਿਰਭਰਤਾ |
| ਮਲਟੀ-ਫੈਕਟਰ (MFA / 2FA) | ਪਹਿਲੀ ਜਾਂਚ ਤੋਂ ਬਾਅਦ ਦੂਜੀ ਜਾਂਚ, ਜਿਵੇਂ ਪ੍ਰਮਾਣੀਕਰਨ ਐਪ ਦਾ ਕੋਡ | ਅੰਦਰ ਵੜਨਾ ਬਹੁਤ ਔਖਾ | ਥੋੜ੍ਹੀ ਵੱਧ ਰੁਕਾਵਟ |
ਪਾਸਵਰਡ ਕਿਵੇਂ ਸਟੋਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ
ਇੱਕ ਸੁਰੱਖਿਅਤ ਐਪ ਤੁਹਾਡਾ ਅਸਲ ਪਾਸਵਰਡ ਕਦੇ ਸਟੋਰ ਨਹੀਂ ਕਰਦੀ। ਇਸ ਦੀ ਥਾਂ ਉਹ ਹੈਸ਼ ਸਟੋਰ ਕਰਦੀ ਹੈ: ਇੱਕ ਅਜਿਹੇ ਫੰਕਸ਼ਨ ਦਾ ਨਤੀਜਾ ਜੋ ਪਾਸਵਰਡ ਨੂੰ ਇੱਕ ਨਿਸ਼ਚਿਤ ਲੰਬਾਈ ਦੀ ਸਤਰ ਵਿੱਚ ਬਦਲਦਾ ਹੈ ਅਤੇ ਜਿਸਨੂੰ ਵਾਪਸ ਨਹੀਂ ਬਦਲਿਆ ਜਾ ਸਕਦਾ। ਲੌਗਇਨ ਕਰਦੇ ਸਮੇਂ ਐਪ ਜੋ ਤੁਸੀਂ ਲਿਖਿਆ ਉਸਦਾ ਹੈਸ਼ ਬਣਾਉਂਦੀ ਹੈ ਅਤੇ ਨਤੀਜੇ ਦੀ ਤੁਲਨਾ ਸਟੋਰ ਹੋਏ ਹੈਸ਼ ਨਾਲ ਕਰਦੀ ਹੈ।
ਦੋ ਗੱਲਾਂ ਇਸਨੂੰ ਸੁਰੱਖਿਅਤ ਬਣਾਉਂਦੀਆਂ ਹਨ:
- ਇੱਕ ਸਾਲਟ: ਹਰ ਪਾਸਵਰਡ ਵਿੱਚ ਹੈਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਬੇਤਰਤੀਬ ਮੁੱਲ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਜੋ ਇੱਕੋ ਪਾਸਵਰਡ ਵਾਲੇ ਦੋ ਲੋਕਾਂ ਦੇ ਹੈਸ਼ ਵੱਖਰੇ ਹੋਣ ਅਤੇ ਪਹਿਲਾਂ ਤੋਂ ਬਣੀਆਂ ਲੁੱਕਅੱਪ ਸਾਰਣੀਆਂ ਬੇਕਾਰ ਹੋਣ।
- ਪਾਸਵਰਡਾਂ ਲਈ ਬਣਿਆ ਹੌਲਾ ਐਲਗੋਰਿਦਮ: ਜਿਵੇਂ Argon2, bcrypt ਜਾਂ scrypt। MD5 ਜਾਂ SHA-256 ਵਰਗੇ ਆਮ ਹੈਸ਼ ਆਪਣੇ ਆਪ ਵਿੱਚ ਬਹੁਤ ਤੇਜ਼ ਹਨ; ਹਮਲਾਵਰ ਅਰਬਾਂ ਅੰਦਾਜ਼ੇ ਲਗਾ ਸਕਦੇ ਹਨ।
ਹੈਸ਼ਿੰਗ ਇਨਕ੍ਰਿਪਸ਼ਨ ਵਰਗੀ ਨਹੀਂ ਹੈ। ਇਨਕ੍ਰਿਪਟ ਕੀਤਾ ਡੇਟਾ ਕੁੰਜੀ ਨਾਲ ਡੀਕ੍ਰਿਪਟ ਹੋ ਸਕਦਾ ਹੈ; ਪਾਸਵਰਡ ਹੈਸ਼ ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ ਕਿ ਉਹ ਬਿਲਕੁਲ ਵਾਪਸ ਨਾ ਹੋ ਸਕੇ।
ਸੈਸ਼ਨ ਬਨਾਮ ਟੋਕਨ
ਲੌਗਇਨ ਤੋਂ ਬਾਅਦ, ਐਪ ਨੂੰ ਹਰ ਬੇਨਤੀ 'ਤੇ ਤੁਹਾਨੂੰ ਪਛਾਣਨਾ ਪੈਂਦਾ ਹੈ। ਇਸਦੇ ਦੋ ਆਮ ਤਰੀਕੇ ਹਨ।
| ਸੈਸ਼ਨ (ਕੂਕੀ) | ਟੋਕਨ (ਜਿਵੇਂ JWT) | |
|---|---|---|
| ਬ੍ਰਾਊਜ਼ਰ ਕੀ ਰੱਖਦਾ ਹੈ | ਕੂਕੀ ਵਿੱਚ ਇੱਕ ਬੇਤਰਤੀਬ ਸੈਸ਼ਨ ID | ਇੱਕ ਦਸਤਖ਼ਤ ਕੀਤਾ ਟੋਕਨ ਜਿਸ ਵਿੱਚ ਉਪਭੋਗਤਾ ਜਾਣਕਾਰੀ ਅਤੇ ਮਿਆਦ ਹੁੰਦੀ ਹੈ |
| ਲੌਗਇਨ ਦੀ ਸਥਿਤੀ ਕਿੱਥੇ ਰਹਿੰਦੀ ਹੈ | ਸਰਵਰ 'ਤੇ, ਡੇਟਾਬੇਸ ਜਾਂ ਸਟੋਰ ਵਿੱਚ | ਟੋਕਨ ਦੇ ਅੰਦਰ ਹੀ |
| ਕਿਸੇ ਨੂੰ ਹਰ ਥਾਂ ਤੋਂ ਲੌਗਆਊਟ ਕਰਨਾ | ਸੌਖਾ: ਸਰਵਰ 'ਤੇ ਸੈਸ਼ਨ ਹਟਾਓ | ਔਖਾ: ਮਿਆਦ ਖ਼ਤਮ ਹੋਣ ਤੱਕ ਟੋਕਨ ਵੈਧ ਰਹਿੰਦਾ ਹੈ ਜਦ ਤੱਕ ਬਲਾਕ-ਲਿਸਟ ਨਾ ਰੱਖੀ ਜਾਵੇ |
| ਆਮ ਵਰਤੋਂ | ਰਵਾਇਤੀ ਵੈੱਬ ਐਪਾਂ | API, ਮੋਬਾਈਲ ਐਪਾਂ, ਸੇਵਾਵਾਂ ਜੋ ਆਪਸ ਵਿੱਚ ਗੱਲ ਕਰਦੀਆਂ ਹਨ |
ਕੂਕੀਆਂ ਲਈ ਤਿੰਨ ਸੈਟਿੰਗਾਂ ਅਹਿਮ ਹਨ: HttpOnly (ਪੰਨੇ ਦਾ JavaScript ਕੂਕੀ ਨਹੀਂ ਪੜ੍ਹ ਸਕਦਾ), Secure (ਸਿਰਫ਼ HTTPS ਰਾਹੀਂ ਭੇਜੀ ਜਾਂਦੀ ਹੈ) ਅਤੇ SameSite (ਦੂਜੀਆਂ ਸਾਈਟਾਂ ਦੀਆਂ ਬੇਨਤੀਆਂ 'ਤੇ ਭੇਜਣ ਨੂੰ ਸੀਮਤ ਕਰਦੀ ਹੈ)। ਬ੍ਰਾਊਜ਼ਰ ਦੇ localStorage ਵਿੱਚ ਟੋਕਨ ਰੱਖਣਾ ਆਮ ਹੈ, ਪਰ ਇਸ ਨਾਲ ਪੰਨੇ 'ਤੇ ਚੱਲਣ ਵਾਲੀ ਕਿਸੇ ਵੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਉਹ ਦਿੱਸ ਸਕਦਾ ਹੈ।
OAuth ਅਤੇ "Google ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ"
OAuth 2.0 ਪ੍ਰਤਿਨਿਧਤਾ ਵਾਲੇ ਅਧਿਕਾਰ ਲਈ ਇੱਕ ਮਿਆਰ ਹੈ: ਇਹ ਕਿਸੇ ਐਪ ਨੂੰ ਕਿਸੇ ਹੋਰ ਸੇਵਾ 'ਤੇ ਤੁਹਾਡੇ ਖਾਤੇ ਦੀ ਸੀਮਤ ਪਹੁੰਚ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਤੁਹਾਡਾ Google Calendar ਪੜ੍ਹਨਾ, ਬਿਨਾਂ ਕਦੇ ਤੁਹਾਡਾ Google ਪਾਸਵਰਡ ਵੇਖੇ। ਤੁਹਾਨੂੰ Google 'ਤੇ ਭੇਜਿਆ ਜਾਂਦਾ ਹੈ, ਤੁਸੀਂ ਖ਼ਾਸ ਇਜਾਜ਼ਤਾਂ (ਜਿਨ੍ਹਾਂ ਨੂੰ ਸਕੋਪ ਕਿਹਾ ਜਾਂਦਾ ਹੈ) ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਦੇ ਹੋ, ਅਤੇ Google ਐਪ ਨੂੰ ਸਿਰਫ਼ ਉਨ੍ਹਾਂ ਇਜਾਜ਼ਤਾਂ ਲਈ ਟੋਕਨ ਦਿੰਦਾ ਹੈ।
OAuth ਆਪਣੇ ਆਪ ਪਹੁੰਚ ਦੇਣ ਲਈ ਬਣਾਇਆ ਗਿਆ ਸੀ, ਇਹ ਦੱਸਣ ਲਈ ਨਹੀਂ ਕਿ ਤੁਸੀਂ ਕੌਣ ਹੋ। OpenID Connect (OIDC) OAuth 2.0 ਉੱਤੇ ਇੱਕ ਪਰਤ ਹੈ ਜੋ ਪਛਾਣ ਜੋੜਦੀ ਹੈ, ਅਤੇ "Google ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ" ਜਾਂ "Apple ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ" ਇਹੀ ਵਰਤਦੇ ਹਨ। ਇਸਨੂੰ ਸੈਟ ਕਰਨ ਲਈ ਤੁਸੀਂ ਆਪਣੀ ਐਪ ਨੂੰ ਪ੍ਰਦਾਤਾ ਕੋਲ ਰਜਿਸਟਰ ਕਰਦੇ ਹੋ ਅਤੇ ਕਲਾਇੰਟ ID ਅਤੇ ਕਲਾਇੰਟ ਸੀਕਰੇਟ ਲੈਂਦੇ ਹੋ; ਸੀਕਰੇਟ ਤੁਹਾਡੇ ਸਰਵਰ 'ਤੇ ਰਹਿੰਦਾ ਹੈ।
ਇੱਕ ਕੰਮ ਕੀਤੀ ਮਿਸਾਲ: ਕਲਾਇੰਟ ਪੋਰਟਲ ਲਈ ਲੌਗਇਨ
ਮੰਨ ਲਓ ਤੁਸੀਂ ਇੱਕ ਪੋਰਟਲ ਬਣਾ ਰਹੇ ਹੋ ਜਿੱਥੇ ਡਿਜ਼ਾਈਨ ਏਜੰਸੀ ਦੇ ਗਾਹਕ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਇਨਵੌਇਸ ਵੇਖਦੇ ਹਨ।
- ਪ੍ਰਮਾਣੀਕਰਨ: ਗਾਹਕ ਈਮੇਲ ਅਤੇ ਮੈਜਿਕ ਲਿੰਕ ਨਾਲ ਲੌਗਇਨ ਕਰਦੇ ਹਨ, ਤਾਂ ਜੋ ਪਾਸਵਰਡ ਸੰਭਾਲਣੇ ਨਾ ਪੈਣ। ਏਜੰਸੀ ਦਾ ਸਟਾਫ਼ Google Workspace ਖਾਤਿਆਂ ਨਾਲ ਲੌਗਇਨ ਕਰਦਾ ਹੈ।
- ਭੂਮਿਕਾਵਾਂ: ਹਰ ਉਪਭੋਗਤਾ ਦੀ ਇੱਕ ਭੂਮਿਕਾ ਹੈ:
clientਜਾਂstaff। - ਅਧਿਕਾਰ ਦੇ ਨਿਯਮ:
| ਕਾਰਵਾਈ | ਗਾਹਕ | ਸਟਾਫ਼ |
|---|---|---|
| ਆਪਣੀ ਕੰਪਨੀ ਦੇ ਪ੍ਰੋਜੈਕਟ ਵੇਖਣੇ | ਹਾਂ | ਹਾਂ |
| ਹੋਰ ਕੰਪਨੀਆਂ ਦੇ ਪ੍ਰੋਜੈਕਟ ਵੇਖਣੇ | ਨਹੀਂ | ਹਾਂ |
| ਕਿਸੇ ਪ੍ਰੋਜੈਕਟ ਵਿੱਚ ਫ਼ਾਈਲ ਅਪਲੋਡ ਕਰਨੀ | ਸਿਰਫ਼ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ | ਹਾਂ |
| ਇਨਵੌਇਸ ਨੂੰ ਅਦਾ ਹੋਇਆ ਨਿਸ਼ਾਨ ਲਗਾਉਣਾ | ਨਹੀਂ | ਹਾਂ |
- ਕਿੱਥੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ: ਸਰਵਰ 'ਤੇ, ਹਰ ਬੇਨਤੀ ਲਈ। ਸਰਵਰ ਲੌਗਇਨ ਉਪਭੋਗਤਾ ਨੂੰ ਲੱਭਦਾ ਹੈ, ਫਿਰ ਸਿਰਫ਼ ਉਹ ਪ੍ਰੋਜੈਕਟ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜਿੱਥੇ
project.company_idਉਪਭੋਗਤਾ ਦੀ ਕੰਪਨੀ ਨਾਲ ਮਿਲਦਾ ਹੈ। "ਇਨਵੌਇਸ ਅਦਾ ਹੋਇਆ" ਬਟਨ ਲੁਕਾਉਣਾ ਕਾਫ਼ੀ ਨਹੀਂ; ਐਂਡਪੌਇੰਟ ਨੂੰ ਖ਼ੁਦ ਇਨਕਾਰ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।
ਆਮ ਸ਼ਬਦਾਂ ਦੀ ਵਿਆਖਿਆ
| ਸ਼ਬਦ | ਅਰਥ |
|---|---|
| ਪ੍ਰਮਾਣੀਕਰਨ (AuthN) | ਇਹ ਪੁਸ਼ਟੀ ਕਰਨਾ ਕਿ ਕੋਈ ਕੌਣ ਹੈ। |
| ਅਧਿਕਾਰ (AuthZ) | ਤੈਅ ਕਰਨਾ ਕਿ ਉਹ ਕੀ ਕਰ ਸਕਦਾ ਹੈ। |
| ਸੈਸ਼ਨ | ਬੇਨਤੀਆਂ ਦੇ ਵਿਚਕਾਰ ਐਪ ਦਾ ਯਾਦ ਰੱਖਣਾ ਕਿ ਤੁਸੀਂ ਲੌਗਇਨ ਹੋ। |
| ਕੂਕੀ | ਇੱਕ ਛੋਟਾ ਡੇਟਾ ਟੁਕੜਾ ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਹਰ ਬੇਨਤੀ ਨਾਲ ਸਾਈਟ ਨੂੰ ਵਾਪਸ ਭੇਜਦਾ ਹੈ। |
| JWT | JSON Web Token: ਇੱਕ ਦਸਤਖ਼ਤ ਕੀਤਾ, ਛੋਟਾ ਟੋਕਨ ਜਿਸ ਵਿੱਚ ਉਪਭੋਗਤਾ ID ਅਤੇ ਮਿਆਦ ਵਰਗੇ ਦਾਅਵੇ ਹੁੰਦੇ ਹਨ। |
| ਭੂਮਿਕਾ / ਇਜਾਜ਼ਤ | admin ਜਾਂ member ਵਰਗੇ ਲੇਬਲ ਜੋ ਪਹੁੰਚ ਤੈਅ ਕਰਦੇ ਹਨ। |
| MFA / 2FA | ਦੂਜਾ ਸਬੂਤ ਮੰਗਣਾ, ਜਿਵੇਂ ਪ੍ਰਮਾਣੀਕਰਨ ਐਪ ਦਾ ਕੋਡ। |
| SSO | ਸਿੰਗਲ ਸਾਈਨ-ਆਨ: ਕਈ ਐਪਾਂ ਲਈ ਇੱਕ ਲੌਗਇਨ (ਅਕਸਰ ਕੰਪਨੀ ਖਾਤਾ)। |
| 401 ਬਨਾਮ 403 | "ਤੁਸੀਂ ਕੌਣ ਹੋ?" (ਪਛਾਣ ਨਹੀਂ ਹੋਈ) ਬਨਾਮ "ਤੁਸੀਂ ਇਹ ਨਹੀਂ ਕਰ ਸਕਦੇ" (ਅਧਿਕਾਰ ਨਹੀਂ)। |
ਆਮ ਗ਼ਲਤੀਆਂ ਅਤੇ ਗ਼ਲਤਫ਼ਹਿਮੀਆਂ
- ਇਜਾਜ਼ਤਾਂ ਸਿਰਫ਼ ਪੰਨੇ ਵਿੱਚ ਜਾਂਚਣਾ। ਜੇ ਬ੍ਰਾਊਜ਼ਰ ਬਟਨ ਲੁਕਾਉਂਦਾ ਹੈ ਪਰ API ਜਾਂਚਦੀ ਨਹੀਂ, ਤਾਂ ਕੋਈ ਵੀ ਸਿੱਧਾ API ਨੂੰ ਕਾਲ ਕਰ ਸਕਦਾ ਹੈ।
- URL ਦੇ ID 'ਤੇ ਭਰੋਸਾ ਕਰਨਾ।
/invoices/1042ਨੂੰ ਜਾਂਚਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਇਨਵੌਇਸ 1042 ਲੌਗਇਨ ਉਪਭੋਗਤਾ ਦਾ ਹੈ। - ਆਪਣੀ ਕ੍ਰਿਪਟੋਗ੍ਰਾਫੀ ਬਣਾਉਣਾ। ਜਾਣੀਆਂ-ਪਛਾਣੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਜਾਂ ਪ੍ਰਦਾਤਾ ਵਰਤੋ; AI ਨੂੰ ਹੈਸ਼ਿੰਗ ਦਾ ਆਪਣਾ ਤਰੀਕਾ ਘੜਨ ਨਾ ਦਿਓ।
- ਕਮਜ਼ੋਰ ਪਾਸਵਰਡ ਰੀਸੈੱਟ। ਰੀਸੈੱਟ ਲਿੰਕ ਇੱਕ ਵਾਰ ਹੀ ਵਰਤੇ ਜਾਣ ਵਾਲੇ, ਜਲਦੀ ਖ਼ਤਮ ਹੋਣ ਵਾਲੇ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ ਅਤੇ ਇਹ ਨਹੀਂ ਦੱਸਣੇ ਚਾਹੀਦੇ ਕਿ ਈਮੇਲ ਦਾ ਖਾਤਾ ਹੈ ਜਾਂ ਨਹੀਂ।
- ਆਪਣੇ ਲੌਗਇਨ ਨੂੰ ਆਪਣੇ ਬਿਲਡਰ ਦੇ ਲੌਗਇਨ ਨਾਲ ਮਿਲਾਉਣਾ। ਤੁਹਾਡੀ ਐਪ ਦੇ ਉਪਭੋਗਤਾ ਉਸ ਟੂਲ ਦੇ ਖਾਤੇ ਤੋਂ ਵੱਖਰੇ ਹਨ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਐਪ ਬਣਾਉਂਦੇ ਹੋ।
- ਲੌਗਇਨ 'ਤੇ ਰੇਟ ਲਿਮਿਟ ਨਾ ਹੋਣਾ। ਇਸ ਤੋਂ ਬਿਨਾਂ ਹਮਲਾਵਰ ਬੇਅੰਤ ਪਾਸਵਰਡ ਅਜ਼ਮਾ ਸਕਦੇ ਹਨ।
ਆਪਣੇ AI ਬਿਲਡਰ ਤੋਂ ਕੀ ਮੰਗੋ
- "[ਕਿਸੇ ਜਾਣੀ-ਪਛਾਣੀ ਲਾਇਬ੍ਰੇਰੀ ਜਾਂ ਪ੍ਰਦਾਤਾ] ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਾਈਨ-ਅੱਪ ਅਤੇ ਲੌਗਇਨ ਜੋੜੋ। ਆਪਣੀ ਪਾਸਵਰਡ ਹੈਸ਼ਿੰਗ ਨਾ ਲਿਖੋ।"
- "ਪਾਸਵਰਡ bcrypt ਜਾਂ Argon2 ਨਾਲ ਹੈਸ਼ ਕਰਕੇ ਸਟੋਰ ਕਰੋ।"
- "ਸੈਸ਼ਨ ਲਈ HttpOnly ਅਤੇ Secure ਕੂਕੀਆਂ ਵਰਤੋ।"
- "ਭੂਮਿਕਾਵਾਂ ਜੋੜੋ: admin ਅਤੇ member। ਹਰ ਐਂਡਪੌਇੰਟ ਅਤੇ ਕਿਹੜੀਆਂ ਭੂਮਿਕਾਵਾਂ ਉਸਨੂੰ ਕਾਲ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਸੂਚੀ ਦਿਓ।"
- "ਸਰਵਰ 'ਤੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਉਪਭੋਗਤਾ ਸਿਰਫ਼ ਆਪਣੇ ਰਿਕਾਰਡ ਪੜ੍ਹ ਅਤੇ ਬਦਲ ਸਕਦੇ ਹਨ। ਫਿਰ ਦਿਖਾਓ ਕਿ ਤੁਸੀਂ ਕਿਵੇਂ ਜਾਂਚਿਆ।"
- "ਇੱਕ ਘੰਟੇ ਵਿੱਚ ਮਿਆਦ ਖ਼ਤਮ ਹੋਣ ਵਾਲੇ, ਇੱਕ ਵਾਰ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਲਿੰਕਾਂ ਨਾਲ ਪਾਸਵਰਡ ਰੀਸੈੱਟ ਜੋੜੋ।"
- "ਲੌਗਇਨ ਕੋਸ਼ਿਸ਼ਾਂ ਦੀ ਰੇਟ ਲਿਮਿਟ ਲਗਾਓ।"
ਫਿਰ ਆਪ ਟੈਸਟ ਕਰੋ: ਦੋ ਖਾਤੇ ਬਣਾਓ ਅਤੇ ਇੱਕ ਲੌਗਇਨ ਹੋਣ 'ਤੇ ਦੂਜੇ ਦਾ ਡੇਟਾ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਸਾਡੀ ਲੌਗਇਨ ਜੋੜਨ ਦੀ ਗਾਈਡ ਅਤੇ ਸੁਰੱਖਿਆ ਚੈੱਕਲਿਸਟ ਹੋਰ ਅੱਗੇ ਲੈ ਜਾਂਦੀਆਂ ਹਨ।
Mythex ਵਿੱਚ ਪ੍ਰਮਾਣੀਕਰਨ
Mythex ਤੁਹਾਡੀ ਐਪ ਦੇ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਕੋਈ ਬਿਲਟ-ਇਨ ਆਥ ਉਤਪਾਦ ਨਹੀਂ ਦਿੰਦਾ; ਤੁਸੀਂ ਕੋਈ ਤਰੀਕਾ ਚੁਣਦੇ ਹੋ, ਜਿਵੇਂ ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਡੇਟਾਬੇਸ ਵਿੱਚ ਈਮੇਲ ਅਤੇ ਪਾਸਵਰਡ, ਜਾਂ ਹੋਸਟਡ ਪ੍ਰਦਾਤਾ ਦਾ SDK, ਅਤੇ ਏਜੰਟ ਨੂੰ ਇਹ ਜੋੜਨ ਲਈ ਕਹਿੰਦੇ ਹੋ। ਪ੍ਰਦਾਤਾ ਦੀਆਂ ਕੁੰਜੀਆਂ ਪ੍ਰੋਜੈਕਟ ਸੀਕਰੇਟਸ ਵਿੱਚ ਜਾਂਦੀਆਂ ਹਨ, ਚੈਟ ਵਿੱਚ ਨਹੀਂ। ਇਹ ਉਸ ਤੋਂ ਵੱਖਰਾ ਹੈ ਕਿ ਤੁਸੀਂ Mythex ਵਿੱਚ ਖ਼ੁਦ ਕਿਵੇਂ ਸਾਈਨ ਇਨ ਕਰਦੇ ਹੋ। ਡੌਕਸ ਦਾ ਐਪ ਵਿੱਚ ਲੌਗਇਨ ਜੋੜਨ ਵਾਲਾ ਰੈਸਿਪੀ ਪੰਨਾ ਇੱਕ ਸ਼ੁਰੂਆਤੀ ਪ੍ਰੋਮਪਟ ਦਿੰਦਾ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਢਾਲ ਸਕਦੇ ਹੋ, ਅਤੇ API ਕੀ ਹੈ ਦੱਸਦਾ ਹੈ ਕਿ ਉਹ ਸਰਵਰ ਵਾਲੀਆਂ ਜਾਂਚਾਂ ਕਿੱਥੇ ਰਹਿੰਦੀਆਂ ਹਨ।
ਸਵਾਲ
ਪ੍ਰਮਾਣੀਕਰਨ ਅਤੇ ਅਧਿਕਾਰ ਵਿੱਚ ਕੀ ਫ਼ਰਕ ਹੈ?
ਪ੍ਰਮਾਣੀਕਰਨ ਜਾਂਚਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੌਣ ਹੋ, ਉਦਾਹਰਣ ਵਜੋਂ ਪਾਸਵਰਡ ਦੀ ਤਸਦੀਕ ਕਰ ਕੇ। ਅਧਿਕਾਰ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਪਛਾਣ ਹੋਣ ਤੋਂ ਬਾਅਦ ਤੁਸੀਂ ਕੀ ਕਰ ਸਕਦੇ ਹੋ, ਜਿਵੇਂ ਕਿ ਐਡਮਿਨ ਪੰਨਾ ਵੇਖਣਾ ਜਾਂ ਕਿਸੇ ਹੋਰ ਦੀ ਬੁਕਿੰਗ ਬਦਲਣਾ। ਐਪਾਂ ਨੂੰ ਦੋਵਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
OAuth ਕੀ ਹੈ?
OAuth 2.0 ਇੱਕ ਮਿਆਰ ਹੈ ਜੋ ਕਿਸੇ ਐਪ ਨੂੰ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਵੇਖੇ ਬਿਨਾਂ, ਕਿਸੇ ਹੋਰ ਸੇਵਾ 'ਤੇ ਤੁਹਾਡੇ ਖਾਤੇ ਦੀ ਸੀਮਤ ਪਹੁੰਚ ਲੈਣ ਦਿੰਦਾ ਹੈ। "Google ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ" OpenID Connect ਵਰਤਦਾ ਹੈ, ਜੋ OAuth 2.0 ਉੱਤੇ ਬਣੀ ਪਛਾਣ ਦੀ ਪਰਤ ਹੈ, ਇਸ ਲਈ ਐਪ ਨੂੰ Google ਤੋਂ ਪਤਾ ਲੱਗਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੌਣ ਹੋ।
ਕੀ ਮੇਰੀ ਐਪ ਪਾਸਵਰਡ ਸਟੋਰ ਕਰੇ?
ਪੜ੍ਹਨਯੋਗ ਰੂਪ ਵਿੱਚ ਕਦੇ ਨਹੀਂ। ਜੇ ਤੁਸੀਂ ਈਮੇਲ ਅਤੇ ਪਾਸਵਰਡ ਲੌਗਇਨ ਵਰਤਦੇ ਹੋ, ਤਾਂ ਪਾਸਵਰਡ ਸਾਲਟ ਕੀਤੇ ਹੈਸ਼ ਵਜੋਂ ਸਟੋਰ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ, ਜੋ Argon2 ਜਾਂ bcrypt ਵਰਗੇ ਪਾਸਵਰਡਾਂ ਲਈ ਬਣੇ ਹੌਲੇ ਐਲਗੋਰਿਦਮ ਨਾਲ ਬਣਾਏ ਜਾਂਦੇ ਹਨ। ਬਹੁਤ ਸਾਰੀਆਂ ਐਪਾਂ ਹੋਸਟਡ ਪ੍ਰਮਾਣੀਕਰਨ ਪ੍ਰਦਾਤਾ, ਸੋਸ਼ਲ ਲੌਗਇਨ ਜਾਂ ਈਮੇਲ ਮੈਜਿਕ ਲਿੰਕ ਵਰਤ ਕੇ ਇਸ ਮਸਲੇ ਤੋਂ ਬਚ ਜਾਂਦੀਆਂ ਹਨ।
ਸੈਸ਼ਨ ਜਾਂ ਟੋਕਨ, ਮੇਰੀ ਐਪ ਕਿਹੜਾ ਵਰਤੇ?
ਦੋਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ। ਸੈਸ਼ਨ ਲੌਗਇਨ ਦੀ ਸਥਿਤੀ ਸਰਵਰ 'ਤੇ ਰੱਖਦਾ ਹੈ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਕੂਕੀ ਵਿੱਚ ਇੱਕ ਬੇਤਰਤੀਬ ID ਦਿੰਦਾ ਹੈ, ਜੋ ਆਸਾਨੀ ਨਾਲ ਰੱਦ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। JWT ਵਰਗਾ ਟੋਕਨ ਦਸਤਖ਼ਤ ਕੀਤੀ ਜਾਣਕਾਰੀ ਆਪ ਰੱਖਦਾ ਹੈ, ਜੋ API ਅਤੇ ਮੋਬਾਈਲ ਲਈ ਠੀਕ ਹੈ ਪਰ ਮਿਆਦ ਖ਼ਤਮ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਰੱਦ ਕਰਨਾ ਔਖਾ ਹੈ। ਆਮ ਵੈੱਬ ਐਪ ਲਈ ਕੂਕੀ-ਅਧਾਰਤ ਸੈਸ਼ਨ ਠੀਕ ਡਿਫ਼ਾਲਟ ਹਨ।