我尝试使用firebase_auth运行Flutter Web并使用google登录,但我得到:响应中的'Access-Control-Allow-Credentials'标头为”(空)
我正在使用
google_sign_in: ^4.1.4
firebase_auth: ^0.15.5+2
firebase_core: ^0.4.4+2
登录方法是:
Future<FirebaseUser> handleSignIn() async {
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth = await googleUser.authentication;
final AuthCredential credential = GoogleAuthProvider.getCredential(
accessToken: googleAuth.accessToken,
idToken: googleAuth.idToken,
);
user = (await _auth.signInWithCredential(credential)).user;
print("signed in " + user.displayName);
return user;
}
我已经在Firebase控制台中配置了Web应用程序,并将配置添加到了web / index.html中:
<script src="https://www.gstatic.com/firebasejs/7.9.3/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.9.3/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.9.3/firebase-auth.js"></script>
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: ...,
authDomain: ...,
databaseURL: ...,
projectId: ...,
storageBucket: ...,
messagingSenderId: ...,
appId: ...,
measurementId: ...
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.analytics();
</script>
<script src="main.dart.js" type="application/javascript"></script>
但是,当我第一次调用它时,它会显示选择帐户的信息,但之后返回错误:
FirebaseError: A network error (such as timeout, interrupted connection or unreachable host) has occurred. (auth/network-request-failed)
在Chrome的控制台中,我可以看到:
Access to fetch at 'https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyAssertion?..'
from origin 'https://...firebaseapp.com' has been blocked by
CORS policy: Response to preflight request doesn't pass access
control check: The value of the 'Access-Control-Allow-Credentials' header in the
response is '' which must be 'true' when the request's credentials mode is 'include'.
我在Android上测试了该应用,并且可以正常登录。
我的firebase.json文件中有一个重写部分。
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
我认为这也是重写身份验证网址吗?一旦我删除了,身份验证就对我有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句