Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
S3上的Angular 4应用程序在重定向后拒绝访问_Angular_Amazon S3_Firebase Authentication_Angularfire2 - Fatal编程技术网

S3上的Angular 4应用程序在重定向后拒绝访问

S3上的Angular 4应用程序在重定向后拒绝访问,angular,amazon-s3,firebase-authentication,angularfire2,Angular,Amazon S3,Firebase Authentication,Angularfire2,我构建了一个简单的angular 4应用程序,使用firebase作为身份验证。我使用了loginWithRedirect,因为loginWithPopup在我的手机上不起作用 但我遇到的问题是,重定向显然会离开页面进行身份验证,然后返回到mysite.com/login,但因为它是SPA/login,所以我猜这个bucket不存在 我添加了这个重定向规则,但它似乎没有任何作用 <RoutingRules> <RoutingRule> <Conditio

我构建了一个简单的angular 4应用程序,使用firebase作为身份验证。我使用了
loginWithRedirect
,因为
loginWithPopup
在我的手机上不起作用

但我遇到的问题是,重定向显然会离开页面进行身份验证,然后返回到
mysite.com/login
,但因为它是SPA
/login
,所以我猜这个bucket不存在

我添加了这个重定向规则,但它似乎没有任何作用

<RoutingRules>
  <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>404</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <HostName>mysite.cloudfront.net</HostName>
      <ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
    </Redirect>
  </RoutingRule>
  <RoutingRule>
    <Condition>
      <HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
    </Condition>
    <Redirect>
      <HostName>mysite.cloudfront.net</HostName>
      <ReplaceKeyPrefixWith>#!/</ReplaceKeyPrefixWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>

编辑:我有一个肮脏的修复方法,就是在将用户发送到谷歌进行身份验证之前,导航到“/”,这样谷歌就可以重定向回它。如果有一种方法可以告诉谷歌重定向回哪里,那就太好了。有吗?

我们需要在本文档中提到的权限>存储桶策略中添加读取访问策略。试试看

{
“版本”:“2012-10-17”,
“声明”:[{
“Sid”:“PublicReadGetObject”,
“效果”:“允许”,
“委托人”:“*”,
“操作”:[“s3:GetObject”],
“资源”:[“arn:aws:s3:::YOUR-BUCKET-NAME/*”
]
}
]

}

如果将S3放在CloudFront后面,我发现这些步骤非常有效。如果我没有弄错的话,可以在应用程序的控制台上定义回调(验证后重定向的url)。我不知道firebase在这件事上是如何工作的,但是如果你能控制回调端点,你可以重定向到你想要的任何URL。@user184994谢谢!这非常简单,迄今为止效果相当好@据我所知,没有一种方法(使用firebase)提供重定向url。谢谢
<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>0D98B2536B28C06D</RequestId>
    <HostId>8nhnAtzaLxPvWcV3f8zqc=</HostId>
</Error>