S3上的Angular 4应用程序在重定向后拒绝访问
我构建了一个简单的angular 4应用程序,使用firebase作为身份验证。我使用了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
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>