Điểm:0

Chuyển hướng lỗi không khớp URI từ Google OAuth cho ứng dụng bình

lá cờ lu

Tôi có một ứng dụng web Flask đang lưu trữ trong Google Cloud Run được lưu trữ với https://mydomain.run.app.

Bây giờ tôi đang cố gắng thêm xác thực google vào nó. Tôi đã tạo API bên dưới thông tin đăng nhập trong GCP. tôi đa cho đi https://mydomain.run.app/authorize trong uri chuyển hướng nhưng khi tôi cố gắng đăng nhập từ ứng dụng của mình, nó sẽ báo cho tôi lỗi chuyển hướng không khớp. Và lỗi cho tôi thấy http://mydomain.run.app/ủy quyền. Sự không phù hợp là httpshttp Khi tôi cố gắng cung cấp http trong thông tin đăng nhập uri, nó ném tôi

Chuyển hướng không hợp lệ: Ứng dụng này có trạng thái xuất bản là "Đang sản xuất". URI phải sử dụng https:// làm lược đồ.

@app.route('/login/google')
xác định google_login():
    google = oauth.create_client('google')
    redirect_uri = url_for('ủy quyền', _external=True,_scheme='https')
    trả về google.authorize_redirect(redirect_uri)

@app.route('/ủy quyền')
ủy quyền chắc chắn ():
    google = oauth.create_client('google')  
    mã thông báo = google.authorize_access_token()  
    resp = google.get('thông tin người dùng')  
    user_info = resp.json()
    người dùng = oauth.google.userinfo() 
    phiên ['hồ sơ'] = user_info
    phiên.vĩnh viễn = Đúng  
    chuyển hướng trở lại ('/ select')

Sau đó, tôi biết ứng dụng của mình chỉ gửi yêu cầu http nên tôi đã cố gắng thêm _scheme='https' vào url_for trong khi chuyển hướng nhưng bây giờ tôi nhận được authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: CSRF Cảnh báo! Nhà nước không bình đẳng trong yêu cầu và phản hồi. lỗi. Tôi đã thay đổi khóa bí mật của mình thành chuỗi tĩnh thay vì các số ngẫu nhiên mà tôi nhận được từ các câu trả lời khác. Nhưng chưa thể giải quyết vấn đề này.

Điểm:0
lá cờ cn

Trước dịch vụ Cloud Run của bạn là GFE (Google FrontEnd). Ứng dụng của bạn kết nối với GFE bằng HTTPS hoặc được chuyển hướng đến HTTPS nếu ứng dụng kết nối bằng HTTP.GFE kết nối với ứng dụng của bạn bằng HTTP.

Ứng dụng của bạn cho rằng ứng dụng khách được kết nối bằng HTTP, vì vậy đang phản hồi bằng các URL http://. Bạn cần xử lý X-Forwarded-Proto để phát hiện phương thức kết nối máy khách và sau đó phản hồi bằng URL HTTPS chính xác. Nhìn vào ProxyFix phần mềm trung gian hoặc tương tự.

lá cờ lu
Cảm ơn vì lời giải thích chi tiết. Nhưng tôi vẫn nhận được authlib.integrations.base_client.errors.MismatchingStateError: mismatching_state: Cảnh báo CSRF! Nhà nước không bình đẳng trong yêu cầu và phản hồi. lỗi. Nó có liên quan đến phiên bản authlib không? Khi tôi thay đổi _scheme, nó chỉ cung cấp cho tôi url https.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.