首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >部署在IIS上的角项目不能从外部进行身份验证

部署在IIS上的角项目不能从外部进行身份验证
EN

Stack Overflow用户
提问于 2019-08-24 18:51:40
回答 1查看 189关注 0票数 0

最近,我正在与angularx-social-login合作登录谷歌。它在本地运行良好,但是当我在Google (Window 12)实例的IIS上部署我的角项目时,我发现了一个问题。只要我停留在我的主机和登录,它仍然有效。但是,当我尝试从其他计算机登录时,它会返回400错误。我是否在任何阶段都错了,或者的实例实际上阻止了我从我的计算机发送的一些请求。我到处搜索,我也设置了Authorised JavaScript origins,但是它不能解决我的问题。有人能帮我吗?谢谢

这是我用的角度的方法

代码语言:javascript
复制
signInWithGoogle(): void {
    this.authService.signIn(GoogleLoginProvider.PROVIDER_ID)
      .then((x) => {
        console.log('loggedIn', x);
        this.user = x;
        this.sendToRestApiMethod(this.user.idToken);
      }).catch((x) => {
        console.log('error', x);
    });
  }

奖金

当我在主机上点击登录按钮时,重定向的网址将是https://accounts.google.com/signin/oauth

但是,当我尝试从其他机器登录并单击同一个登录按钮时,它将返回https://accounts.google.com/o/oauth2

奖金2:我发现了一些东西,这是因为angular登录。通常,如果我键入域名,它将重定向到主机的IP地址。但是当调用角的动作时,它实际上根据主机的IP地址而不是域名发送oauth请求。如果我将etc/host内部主机的IP更改为域名,它就能正常工作(因为它使用的是实名而不是公共IP地址)。

详细结果:

这是谷歌的回归

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-29 10:47:03

经过几天的挫折,我找到了解决办法。这是因为每次被调用时我都会设置域,它会重定向到主机的ip地址。因此,Angular在调用身份验证时(当您调用上述事件时)会自动读取公共ip address,而不是您的域名,当然它不允许您这样做(谷歌登录电子邮件确实需要真正的域名而不是公共ip地址)。要解决这个问题,我只需要获取Google Cloud实例的域名服务器,然后在我创建域名的地方定制它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57640726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档