OAUTH 2.0 இல் புதுப்பிப்பு டோக்கன் முரண்பாட்டைப் புரிந்துகொள்வது
உங்கள் வலை பயன்பாட்டிற்கான தடையற்ற OAUTH 2.0 அங்கீகார ஓட்டத்தை உருவாக்குவதை கற்பனை செய்து பாருங்கள். உங்கள் உள்ளூர் கணினியில் எல்லாம் சரியாக வேலை செய்கிறது, ஆனால் கூகிள் கிளவுட் எஞ்சினில் (ஜி.சி.இ) பயன்படுத்தப்படும்போது, ஒரு அத்தியாவசிய துண்டு -புதுப்பிப்பு டோக்கன் -இல்லை! Infact இந்த சிக்கல் தானியங்கி டோக்கன் புதுப்பித்தலைத் தடுக்கிறது, பயனர் அமர்வுகளை சீர்குலைக்கிறது.
பல டெவலப்பர்கள் செயல்படுத்தப்பட்ட போதிலும், இந்த குழப்பமான சிக்கலை எதிர்கொள்கின்றனர் Access_type = "ஆஃப்லைன்" மற்றும் பிற சிறந்த நடைமுறைகள். லோக்கல் ஹோஸ்ட் சூழல் தொடர்ந்து புதுப்பிப்பு டோக்கனை வழங்குகிறது, அதே நேரத்தில் மேகக்கணி வரிசைப்படுத்தல் அவ்வாறு செய்யத் தவறிவிட்டது. இரண்டு அமைப்புகளும் ஒரே கோட்பேஸ் மற்றும் அங்கீகார ஓட்டத்தைப் பகிர்ந்து கொள்வதால் மர்மம் ஆழமடைகிறது.
எண்ணற்ற மணிநேர பிழைத்திருத்தத்திற்குப் பிறகு, தீர்வு பெரும்பாலும் கவனிக்கப்படாத அளவுருவில் உள்ளது: தி உடனடி விருப்பம். இந்த அமைப்பை முறுக்குவது என்பது புதுப்பிப்பு டோக்கனைப் பெறுவதற்கும் முடிவற்ற அங்கீகார வளையத்தில் சிக்கிக்கொள்வதற்கும் உள்ள வித்தியாசத்தைக் குறிக்கும். ஆனால் இது ஏன் நடக்கும்? .
இந்த கட்டுரையில், இந்த சிக்கலின் மூல காரணத்தை நாங்கள் பிரிப்போம், கூகிளின் OAuth 2.0 நடத்தையை ஆராய்ந்து, உறுதியான தீர்வை வழங்குவோம். நீங்கள் இயக்குகிறீர்களா என்பது பிளாஸ்க் பயன்பாடு அல்லது மற்றொரு கட்டமைப்பானது, நீங்கள் ஒரு வேலை தீர்வையும், கூகிளின் அங்கீகார வினோதங்களைப் பற்றிய சிறந்த புரிதலுடனும் விலகிச் செல்வீர்கள்!
கட்டளை | பயன்பாட்டின் எடுத்துக்காட்டு |
---|---|
OAuth2Session() | Google உடன் அங்கீகாரத்தைக் கையாள OAuth 2.0 அமர்வை உருவாக்குகிறது. இது டோக்கன் சேமிப்பு, புத்துணர்ச்சி மற்றும் ஏபிஐ கோரிக்கைகளை பாதுகாப்பாக நிர்வகிக்கிறது. |
authorization_url() | OAuth அனுமதிகளை வழங்க பயனர்கள் பார்வையிட வேண்டிய URL ஐ உருவாக்குகிறது. போன்ற அளவுருக்கள் அடங்கும் அணுகல்_ வகை மற்றும் உடனடி சிறந்த கட்டுப்பாட்டுக்கு. |
fetch_token() | பயனர் அங்கீகாரத்திற்குப் பிறகு அணுகல் டோக்கன் மற்றும் புதுப்பிப்பு டோக்கனை (கிடைத்தால்) மீட்டெடுக்கிறது. இது டோக்கன் இறுதிப்புள்ளிக்கு ஒரு கோரிக்கையை அனுப்புகிறது. |
session["oauth_state"] | சி.எஸ்.ஆர்.எஃப் தாக்குதல்களைத் தடுக்க OAuth மாநில அளவுருவை சேமிக்கிறது. பயனர் திரும்பும்போது அங்கீகார கோரிக்கை செல்லுபடியாகும் என்பதை இது உறுதி செய்கிறது. |
redirect() | பயனரை கூகிளின் OAUTH பக்கத்திற்கு திருப்பி விடுகிறது அல்லது அங்கீகாரத்திற்குப் பிறகு பயன்பாட்டிற்கு திரும்பவும். மென்மையான உள்நுழைவு ஓட்டத்தை உறுதி செய்கிறது. |
test_client() | பிளாஸ்க் பயன்பாட்டிற்கான சோதனை சூழலை உருவாக்குகிறது, சேவையகத்தைத் தொடங்காமல் HTTP கோரிக்கைகளை உருவகப்படுத்த அனுமதிக்கிறது. |
assertIn() | கூகிள் உள்நுழைவு URL சரியாக திருப்பித் தரப்பட்டதா என்பதை சரிபார்ப்பது போன்ற பதிலில் ஒரு குறிப்பிட்ட அடி மூலக்கூறு இருக்கிறதா என்று சரிபார்க்கிறது. |
setUp() | சோதனை நிகழ்வுகளுக்கான முன் நிபந்தனைகளை வரையறுக்கிறது. அங்கீகார சோதனைகளை இயக்குவதற்கு முன் பிளாஸ்க் டெஸ்ட் கிளையண்டை துவக்குகிறது. |
authorization_response=request.url | பயனர் அங்கீகாரத்திற்குப் பிறகு கூகிள் திரும்பும் URL ஐப் பிடிக்கிறது. டோக்கன்களைப் பெறுவதற்குத் தேவையான அங்கீகாரக் குறியீடு இதில் உள்ளது. |
OAUTH 2.0 ஐப் புரிந்துகொள்வது பிளாஸ்க் பயன்பாடுகளில் டோக்கன் மீட்டெடுப்பை புதுப்பிக்கவும்
OAUTH 2.0 என்பது பரவலாகப் பயன்படுத்தப்படும் அங்கீகார கட்டமைப்பாகும், இது கூகிள் போன்ற வெளிப்புற வழங்குநர்கள் வழியாக பயனர்களை அங்கீகரிக்க பயன்பாடுகளை அனுமதிக்கிறது. எங்கள் எடுத்துக்காட்டில், நாங்கள் ஒரு செயல்படுத்தினோம் குடுவை பயன்பாடு பயன்படுத்துதல் requests_oauthlib அங்கீகார செயல்முறையை கையாள நூலகம். இருப்பினும், ஒரு முக்கிய பிரச்சினை எழுந்தது: உள்நாட்டில் இயங்கும் போது மட்டுமே புதுப்பிப்பு டோக்கன் வழங்கப்பட்டது, ஆனால் மேகக்கணி சூழலில் இல்லை. இந்த சிக்கல் தானியங்கி டோக்கன் புதுப்பிப்பைத் தடுத்தது, பயனர்கள் அடிக்கடி மீண்டும் அங்கீகரிக்க வேண்டும்.
தீர்வின் மையமானது அங்கீகார கோரிக்கையை சரிசெய்வதில் உள்ளது. இயல்பாக, கூகிள் வெளிப்படையாக பயன்படுத்தப்படும்போது புதுப்பிப்பு டோக்கனை மட்டுமே வழங்குகிறது Access_type = "ஆஃப்லைன்". இருப்பினும், சில சந்தர்ப்பங்களில், சேர்க்கிறது உடனடி = "ஒப்புதல்" பயனரை அங்கீகாரத்திற்காக மீண்டும் நிரூபிக்க Google ஐ கட்டாயப்படுத்த அளவுரு அவசியம். பயன்பாட்டைப் பயன்படுத்தும்போது இது மிகவும் முக்கியமானது கூகிள் கிளவுட் எஞ்சின் (ஜி.இ., முன்னர் வழங்கப்பட்ட அனுமதிகள் செல்லக்கூடாது.
எங்கள் ஸ்கிரிப்ட் ஒரு OAuth அமர்வைத் தொடங்குவதன் மூலமும், பயனர்களை Google இன் உள்நுழைவு பக்கத்திற்கு திருப்பிவிடுவதன் மூலமும் தொடங்குகிறது. பயனர் அங்கீகரித்ததும், கூகிள் அங்கீகாரக் குறியீட்டை வழங்குகிறது, இது அணுகல் டோக்கனுக்கான பயன்பாடு பரிமாறிக்கொள்ளும். முக்கிய பிரச்சினை என்னவென்றால், சரியான அளவுருக்கள் இல்லாமல், கூகிள் புதுப்பிப்பு டோக்கனை வழங்காது, இது நீண்டகால அங்கீகாரத்தை சாத்தியமற்றது. சேர்க்க கோரிக்கையை மாற்றியமைப்பதன் மூலம் உடனடி = "ஒப்புதல்", ஒரு புதிய புதுப்பிப்பு டோக்கன் எப்போதும் உருவாக்கப்படுவதை உறுதிசெய்கிறோம்.
தீர்வை சரிபார்க்க, உள்நுழைவு கோரிக்கையை உருவகப்படுத்த ஒரு யூனிட் சோதனையையும் உருவாக்கி, சரியான அங்கீகார URL திருப்பித் தரப்பட்டதா என்பதை சரிபார்க்கவும். எங்கள் பிழைத்திருத்தம் வெவ்வேறு சூழல்களில் செயல்படுவதை இது உறுதி செய்கிறது. இதேபோன்ற சிக்கலை நீங்கள் எப்போதாவது எதிர்கொண்டிருந்தால் -அங்கு அங்கீகாரம் உற்பத்தியில் மற்றும் வளர்ச்சியில் வித்தியாசமாக செயல்படுகிறது -OAuth 2.0 பயனர் அமர்வுகளை எவ்வாறு கையாளுகிறது மற்றும் டோக்கன் நிலைத்தன்மையை எவ்வாறு கையாளுகிறது என்பதைப் புரிந்துகொள்வது முக்கியமானது. இந்த மாற்றங்களுடன், நீங்கள் தடையற்ற அங்கீகாரத்தையும் சிறந்த பயனர் அனுபவத்தையும் உறுதிப்படுத்த முடியும். .
காணாமல் போன OAuth 2.0 கூகிள் கிளவுட் வரிசைப்படுத்தல்களில் டோக்கன்களை புதுப்பிக்கவும்
Google உடன் OAuth 2.0 அங்கீகாரத்தை செயல்படுத்தும் பைதான் பிளாஸ்க் பயன்பாடு
from flask import Flask, redirect, session, request
from requests_oauthlib import OAuth2Session
app = Flask(__name__)
app.secret_key = "your_secret_key"
CLIENT_ID = "your_client_id"
CLIENT_SECRET = "your_client_secret"
AUTHORIZATION_BASE_URL = "https://accounts.google.com/o/oauth2/auth"
TOKEN_URL = "https://oauth2.googleapis.com/token"
REDIRECT_URI = "https://yourdomain.com/callback"
@app.route("/login")
def login():
gcp = OAuth2Session(CLIENT_ID, redirect_uri=REDIRECT_URI, scope=["openid", "email", "profile"])
authorization_url, state = gcp.authorization_url(AUTHORIZATION_BASE_URL, access_type="offline", prompt="consent")
session["oauth_state"] = state
return redirect(authorization_url)
@app.route("/callback")
def callback():
gcp = OAuth2Session(CLIENT_ID, state=session["oauth_state"], redirect_uri=REDIRECT_URI)
token = gcp.fetch_token(TOKEN_URL, client_secret=CLIENT_SECRET, authorization_response=request.url)
session["oauth_token"] = token
return "Login Successful"
if __name__ == "__main__":
app.run(debug=True)
OAUTH 2.0 டோக்கன் மீட்டெடுப்பதற்கான அலகு சோதனை
OAuth 2.0 அங்கீகாரம் மற்றும் புதுப்பித்தல் டோக்கன் மீட்டெடுப்பதை சரிபார்க்க பைதான் அலகு சோதனை
import unittest
from app import app
class OAuthTestCase(unittest.TestCase):
def setUp(self):
self.app = app.test_client()
def test_login_redirect(self):
response = self.app.get("/login")
self.assertEqual(response.status_code, 302)
self.assertIn("accounts.google.com", response.location)
if __name__ == "__main__":
unittest.main()
மேகக்கணி சூழல்களில் பாதுகாப்பான மற்றும் தொடர்ச்சியான OAuth 2.0 அங்கீகாரத்தை உறுதி செய்தல்
OAuth 2.0 அங்கீகாரத்தை மேகக்கட்டத்தில் பயன்படுத்தும்போது டெவலப்பர்கள் எதிர்கொள்ளும் ஒரு முக்கிய சவால் அமர்வுகளில் அங்கீகார செயல்முறை தடையின்றி இருப்பதை உறுதி செய்கிறது. புதுப்பிப்பு டோக்கன் வழங்கப்படாதபோது, பயனர்கள் அடிக்கடி மீண்டும் அங்கீகரிக்க வேண்டும், இது பயனர் அனுபவத்தை சீர்குலைக்கும். தவறான உள்ளமைவு காரணமாக இந்த பிரச்சினை பெரும்பாலும் எழுகிறது OAUTH 2.0 ஒப்புதல் திரை கூகிள் கிளவுட் கன்சோலில், கூகிள் பயன்பாட்டிற்கு ஆஃப்லைன் அணுகல் தேவையில்லை என்று கருதுகிறது.
தேவையான அனைத்து ஏபிஐ நோக்கங்களும் சரியாக கட்டமைக்கப்பட்டிருப்பதை உறுதி செய்வதே மற்றொரு முக்கியமான காரணி. மேகக்கணி ஹோஸ்ட் செய்யப்பட்ட பயன்பாடு சரியானதைக் கோரவில்லை என்றால் OAUTH 2.0 நோக்கங்கள், புதுப்பிப்பு டோக்கன்களைத் தவிர்த்து, வழங்கப்பட்ட அனுமதிகளை கூகிள் கட்டுப்படுத்தலாம். டெவலப்பர்கள் தங்கள் பயன்பாடு வெளிப்படையாக ஆஃப்லைன் அணுகலைக் கோருகிறது மற்றும் போன்ற தொடர்புடைய நோக்கங்களை உள்ளடக்கியது என்பதை சரிபார்க்க வேண்டும் "ஓபன்ஐடி", "மின்னஞ்சல்" மற்றும் "சுயவிவரம்", அங்கீகார கோரிக்கையில். கூடுதலாக, பயன்படுத்தி அடங்கும்_ கிராண்டட்_ஸ்கோப்கள் = "உண்மை" முந்தைய அமர்வுகளில் வழங்கப்பட்ட அனுமதிகளைப் பராமரிக்க அளவுரு உதவுகிறது.
அங்கீகார பாதுகாப்பு மற்றும் விடாமுயற்சியை மேலும் மேம்படுத்த, டெவலப்பர்கள் வலுவான செயல்படுத்த வேண்டும் டோக்கன் சேமிப்பு. அமர்வு மாறிகளில் டோக்கன்களை சேமிப்பதற்கு பதிலாக, பாதுகாப்பான தரவுத்தளம் அல்லது மறைகுறியாக்கப்பட்ட சேமிப்பக பொறிமுறையைப் பயன்படுத்துவது சேவையக மறுதொடக்கங்களில் டோக்கன்களை அணுகுவது மற்றும் புதுப்பித்தல் டோக்கன்களை அணுகுவதை உறுதி செய்கிறது. இந்த சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், டெவலப்பர்கள் கிளவுட் ஹோஸ்ட் செய்யப்பட்ட பயன்பாடுகளில் மென்மையான மற்றும் தடையில்லா அங்கீகார ஓட்டத்தை உறுதிப்படுத்த முடியும். .
OAuth 2.0 மற்றும் டோக்கன்களைப் புதுப்பிக்கவும் பொதுவான கேள்விகள்
- எனது மேகக்கணி ஹோஸ்ட் பயன்பாடு ஏன் புதுப்பிப்பு டோக்கனைப் பெறவில்லை?
- உங்கள் அங்கீகார கோரிக்கை அடங்கும் என்பதை உறுதிப்படுத்தவும் access_type="offline" மற்றும் prompt="consent". மேலும், உங்கள் பயன்பாடு Google கிளவுட் கன்சோலில் சரியாக கட்டமைக்கப்பட்டுள்ளதா என்பதை சரிபார்க்கவும்.
- OAuth 2.0 அங்கீகாரத்தில் "உடனடி" அளவுருவின் பங்கு என்ன?
- தி prompt கூகிள் பயனர் ஒப்புதலை எவ்வாறு கோருகிறது என்பதை அளவுரு கட்டுப்படுத்துகிறது. பயன்படுத்துகிறது prompt="consent" புதுப்பிப்பு டோக்கன் வழங்கப்படுவதை உறுதிசெய்து, மீண்டும் அனுமதிகளை வழங்க பயனரை கட்டாயப்படுத்துகிறது.
- புதுப்பிப்பு டோக்கன் இல்லாமல் அணுகல் டோக்கனை கைமுறையாக புதுப்பிக்க முடியுமா?
- இல்லை, பயனர் தலையீடு இல்லாமல் புதிய அணுகல் டோக்கனை உருவாக்க புதுப்பிப்பு டோக்கன் தேவை. நீங்கள் புதுப்பிப்பு டோக்கனைப் பெறவில்லை என்றால், உங்கள் பயன்பாடு பயனர்களை மீண்டும் அங்கீகரிக்க வேண்டும்.
- ஒரு பிளாஸ்க் பயன்பாட்டில் OAuth 2.0 டோக்கன்களை எவ்வாறு பாதுகாப்பாக சேமிப்பது?
- அமர்வு மாறிகளில் டோக்கன்களை சேமிப்பதற்கு பதிலாக, மறைகுறியாக்கப்பட்ட புலங்களுடன் ஒரு தரவுத்தளத்தைப் பயன்படுத்தவும் அல்லது கூகிள் ரகசிய மேலாளர் போன்ற பாதுகாப்பான நற்சான்றிதழ் மேலாண்மை அமைப்பைப் பயன்படுத்தவும்.
- ஒரு குறிப்பிட்ட காலத்திற்குப் பிறகு கூகிள் புதுப்பிப்பு டோக்கன்களை ரத்துசெய்கிறதா?
- ஆம், புதுப்பிப்பு டோக்கன்கள் நீட்டிக்கப்பட்ட காலத்திற்கு பயன்படுத்தப்படாவிட்டால் அல்லது பயனர் தங்கள் Google கணக்கு அமைப்புகள் வழியாக அணுகலை ரத்து செய்தால் ரத்து செய்யப்படலாம்.
கிளவுட் பயன்பாடுகளில் OAuth 2.0 ஐத் தீர்க்கும் டோக்கன் சிக்கல்களை புதுப்பிக்கவும்
மேகக்கணி பயன்பாடுகளில் தடையற்ற அங்கீகாரத்தை பராமரிக்க OAuth 2.0 டோக்கன் கையாளுதலின் நுணுக்கங்களைப் புரிந்துகொள்வது அவசியம். உற்பத்திச் சூழலில் உள்ளூரில் ஒரு புதுப்பிப்பு டோக்கனைப் பெறுவதற்கான வேறுபாடு பெரும்பாலும் மறைமுகமான கூகிள் அங்கீகார நடத்தைகளிலிருந்து உருவாகிறது. ஆஃப்லைன் அணுகலை வெளிப்படையாகக் குறிப்பிடுவதன் மூலமும், பயனர் சம்மதத்தை அமல்படுத்துவதன் மூலமும், டெவலப்பர்கள் அமர்வுகளில் டோக்கன்கள் நீடிப்பதை உறுதி செய்யலாம்.
கூடுதலாக, டோக்கன்களை பாதுகாப்பான தரவுத்தளத்தில் சரியாக சேமித்து, அவற்றை தொடர்ந்து புத்துணர்ச்சியாக்குவது அமர்வு காலாவதிகளைத் தடுக்கிறது. கூகிள் அங்கீகாரத்துடன் வலை பயன்பாடுகளை உருவாக்கும் எவருக்கும், இந்த சிக்கல்களைத் தீர்ப்பது பாதுகாப்பு மற்றும் பயனர் அனுபவத்தை மேம்படுத்துகிறது. சரியான உள்ளமைவுடன், உங்கள் பயன்பாடு நிலையான மறு அங்கீகாரமின்றி சீராக இயங்க முடியும்! .
நம்பகமான ஆதாரங்கள் மற்றும் குறிப்புகள்
- OAuth 2.0 அங்கீகாரம் மற்றும் புதுப்பிப்பு டோக்கன்களில் கூகிளின் அதிகாரப்பூர்வ ஆவணங்கள்: கூகிள் OAUTH 2.0 வழிகாட்டி .
- கூகிள் கிளவுட் வரிசைப்படுத்தல்களில் புதுப்பிப்பு டோக்கன் சிக்கல்களைக் கையாள்வது குறித்த விவாதம்: வழிதல் நூலை அடுக்கி வைக்கவும் .
- பிழை அறிக்கை சரியானதைப் பயன்படுத்துவதன் முக்கியத்துவத்தை எடுத்துக்காட்டுகிறது உடனடி அளவுரு: கூகிள் வெளியீடு டிராக்கர் .
- ஓபன்ஐடி இணைப்பின் விரிவான விளக்கம் உடனடி விருப்பங்கள் மற்றும் அங்கீகாரத்தில் அவற்றின் விளைவு: OpenID கனெக்ட் கோர் விவரக்குறிப்பு .
- பைதான் requests_oauthlib பிளாஸ்கில் OAuth அங்கீகாரத்தை நிர்வகிப்பதற்கான நூலக ஆவணங்கள்: கோரிக்கைகள்-oauthlib ஆவணங்கள் .