Score:0

เปลี่ยนเส้นทางข้อผิดพลาด URI ไม่ตรงกันจาก Google OAuth สำหรับแอปขวด

ฉันมีเว็บแอปพลิเคชัน Flask ซึ่งโฮสต์ใน Google Cloud Run ซึ่งโฮสต์ด้วย https://mydomain.run.app.

ตอนนี้ฉันกำลังพยายามเพิ่มการรับรองความถูกต้องของ Google เข้าไป ฉันได้สร้าง API ภายใต้ ข้อมูลรับรอง ใน GCP ฉันได้ให้ https://mydomain.run.app/authorize ใน uri การเปลี่ยนเส้นทาง แต่เมื่อฉันพยายามเข้าสู่ระบบจากแอพของฉัน มันแสดงข้อผิดพลาดในการเปลี่ยนเส้นทางไม่ตรงกัน และข้อผิดพลาดแสดงให้ฉันเห็น http://mydomain.run.app/authorize. ที่ไม่ตรงกันคือ https และ http เมื่อฉันพยายามให้ http ในข้อมูลรับรอง uri มันทำให้ฉัน

การเปลี่ยนเส้นทางไม่ถูกต้อง: แอปนี้มีสถานะการเผยแพร่เป็น "กำลังผลิต" URI ต้องใช้ https:// เป็นรูปแบบ

@app.route('/login/google')
def google_login():
    google = oauth.create_client('google')
    redirect_uri = url_for('อนุญาต', _external=True,_scheme='https')
    กลับ google.authorize_redirect (redirect_uri)

@app.route('/อนุญาต')
def อนุญาต ():
    google = oauth.create_client('google')  
    โทเค็น = google.authorize_access_token()  
    resp = google.get('ข้อมูลผู้ใช้')  
    user_info = resp.json()
    ผู้ใช้ = oauth.google.userinfo() 
    เซสชัน['โปรไฟล์'] = user_info
    session.permanent = จริง  
    ส่งคืนการเปลี่ยนเส้นทาง ('/ เลือก')

จากนั้นฉันก็รู้ว่าแอปพลิเคชันของฉันส่งคำขอ http เท่านั้น ดังนั้นฉันจึงพยายามเพิ่ม _scheme='https' ใน url_for ในขณะที่เปลี่ยนเส้นทาง แต่ตอนนี้ฉันได้รับ authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: CSRF คำเตือน! รัฐไม่เท่าเทียมกันในคำขอและการตอบสนอง ข้อผิดพลาด. ฉันเปลี่ยนรหัสลับเป็นสตริงคงที่แทนตัวเลขสุ่มที่ฉันได้รับจากคำตอบอื่น แต่ยังไม่สามารถแก้ปัญหานี้ได้

Score:0
ธง cn

หน้าบริการ Cloud Run ของคุณคือ GFE (Google FrontEnd) แอปของคุณเชื่อมต่อกับ GFE โดยใช้ HTTPS หรือเปลี่ยนเส้นทางไปยัง HTTPS หากเชื่อมต่อโดยใช้ HTTPGFE เชื่อมต่อกับแอปของคุณโดยใช้ HTTP

แอปพลิเคชันของคุณคิดว่าไคลเอนต์เชื่อมต่อโดยใช้ HTTP ดังนั้นจึงตอบสนองด้วย http:// URL คุณต้องประมวลผล X-Forwarded-Proto เพื่อตรวจหาวิธีการเชื่อมต่อไคลเอ็นต์ จากนั้นตอบสนองด้วย HTTPS URL ที่ถูกต้อง ดูที่ พร็อกซีฟิกซ์ มิดเดิลแวร์หรือที่คล้ายกัน

ขอบคุณสำหรับคำอธิบายโดยละเอียด แต่ฉันยังคงได้รับ authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: CSRF คำเตือน! รัฐไม่เท่าเทียมกันในคำขอและการตอบสนอง ข้อผิดพลาด. มันจะเกี่ยวข้องกับเวอร์ชั่น authlib หรือไม่? เมื่อฉันเปลี่ยน _scheme มันจะให้ https url เท่านั้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา