我有一个带有JavaScript Facebook React前端和Python Flask服务器的应用程序。我控制双方的所有代码。我想使用Google OAuth2进行身份验证来添加用户登录。
我主要在工作。我在服务器端使用flask_dance,并且有可以在我的服务器端口(localhost:5000)上直接调用的工作端点,可以以当前的Google Chrome用户身份登录和注销。
在客户端,我正在使用Facebook React进行开发,客户端在localhost:3000上。我使用React proxy将所有服务器请求重定向到localhost:5000。
初始登录失败。当OAuth2舞蹈尝试转到Google时,我得到:
localhost/:1 Failed to load https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=XXX_elided_.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Flogin%2Fgoogle%2Fauthorized&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fplus.me+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=OuLCVdSdarySrC5kARTeEvktDnB9Vu: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
问题似乎出在3000/5000端口双关语。
我不是真的很喜欢这个解决方案的任何部分。因此,无论是解决此紧急问题,还是为React / Flask项目轻松实现Google身份验证登录的任何其他途径,我都会感到满意。