Google+认证的Angular- express -Google策略无法向Angular传递访问令牌



我正在尝试使用google Passport策略实现google+身份验证,并将访问令牌返回到客户端(Angular)以用于后续请求。但我总是在客户端出错。"XMLHttpRequest无法加载https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_ur...=1094664898379-8u0muh9eme8nnvp95dafuc3rvigu4j9u.apps.googleusercontent.com。请求的资源上没有'Access-Control-Allow-Origin'标头。Origin 'http://localhost:3000'因此不允许访问。"这是我在web应用中实现google策略进行身份验证时得到的。我在客户端使用Angular框架,在服务器端使用Express。

我也提到了以下以前的帖子解决方案,但无济于事。提供的解决方案是使用简单的href客户端,但我不知道如何将访问令牌传递到客户端以进行后续API请求。如有任何帮助,我将不胜感激。

Angular/Node/Express/Passport -连接到facebook时的问题(CORS)Angular/Node/Express/Passport跨域问题-启用CORS Passport Facebook Authentication

经过大量令人沮丧的搜索,我终于能够通过使用google令牌策略进行身份验证来解决这个问题。在这里,我首先在客户端验证用户,然后在服务器端验证令牌。下面的代码片段是针对fb的,但同样适用于google。

app.post('/auth/facebook/accesstoken',
      passport.authenticate('facebook-token',{session: false}),
      function (req, res) {
        // do something with req.user
        if(req.user){
            console.log('fb user authenticated');
            res.send(req.user);
        }
        else{
            console.log('no entry');
            res.send(401);
        }
      }
    );

最新更新