我正在Flutter中使用Line App Login,我可以在Line API中获得用户令牌,但我下一步该怎么做。
现在我正在尝试在FirebaseAuth.instance.signInWithCustomToken(token:customToken)中使用它,但是它不起作用。错误日志中显示“ PlatformException(ERROR_INVALID_CUSTOM_TOKEN,自定义令牌格式不正确。请检查文档。[无效的断言格式。],null)”是否可以解决此问题?
lineSignIn() async {
_flutterLineLogin.startLogin(_onLoginSuccess, _onLoginError);
}
void _onLoginSuccess(dynamic value) {
FirebaseAuth.instance.signInWithCustomToken(token:value['accessToken'].toString()).then((onValue) {
if (onValue != null) {
///this should be success
}
}).catchError((onError) {
print(onError.toString());
});
}
void _onLoginError(Object error) {
debugPrint("PlatformException: ${error}");
}
我需要做的只是在Firebase中对令牌进行身份验证。提前谢谢大家!
答案 0 :(得分:0)
对我来说一样...
就我而言,我使用 Webview 与我的Firebase API(在全球范围内使用创建 Firebase JWT 的Instagram API调用)进行通信。 ),当我输入在cookie中传递给函数FirebaseAuth.instance.signInWithCustomToken()
的令牌时……我遇到了相同的错误PlatformException(ERROR_INVALID_CUSTOM_TOKEN, The custom token format is incorrect. Please check the documentation.
我将我的JWT传递给了jwt.io,这似乎是正确的……但对于Firebase:Decoded JavaScript Web Token IMAGE却不是。
此错误与Firebase或Flutter有关吗?
如果有人知道错误在哪里... 请让我知道。
祝你有美好的一天。
答案 1 :(得分:-1)
使用 FirebaseAuth.instance.signInWithCredential
代替FirebaseAuth.instance.signInWithCustomToken
我也使用相同的来源,并尝试通过AuthResult
实例获取Firebase
,但是由于以下错误FirebaseAuth
而失败。
PlatformException(ERROR_INVALID_CUSTOM_TOKEN,自定义令牌格式 是不正确的。请检查文档。 [无效的断言 格式。需要3个点分隔的段。 ],为空)
例如,请参见下面的Facebook
登录源:
_loginFacebookUser() async {
try {
// getting token using email or public profile
_facebookLogin.logIn(["email", "public_profile"]).then((FacebookLoginResult fbResult) {
if (fbResult != null) {
// if facebook login result is loggedIn then
if (fbResult.status == FacebookLoginStatus.loggedIn) {
String facebookToken = fbResult.accessToken.token;
print("facebookToken is: ${facebookToken}");
AuthCredential credential = FacebookAuthProvider.getCredential(accessToken: facebookToken);
// generating firebase authResult for facebook
// FirebaseAuth.instance.signInWithCustomToken(token: facebookToken).then((AuthResult authResult) {
//
// AdditionalUserInfo userInfo = authResult.additionalUserInfo;
// print("facebook userName is: ${userInfo.username}");
// print("facebook user profile is: ${userInfo.profile}");
//
// }).catchError((error) {
// print("error occurred while firebase tokenizing: $error");
// });
FirebaseAuth.instance.signInWithCredential(credential).then((AuthResult authResult) {
AdditionalUserInfo userInfo = authResult.additionalUserInfo;
print("facebook userName is: ${userInfo.username}");
print("facebook user profile is: ${userInfo.profile}");
}).catchError((error) {
print("error occurred while firebase tokenizing: $error");
});
}
} else {
print("facebook login result is null");
}
}).catchError((error) {
print("facebook login error: $error");
});
setState(() {});
} catch (error) {
print("error occurred while loggin: $error");
}
}
希望它将对某人有所帮助。