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à https và http
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.