问题描述
我正在通过MySQL和PHP在Web上使用FirebaseUI身份验证。我想进行数据库调用以检查MySQL数据库中是否存在经过身份验证的用户,否则在显示登录屏幕之前插入该用户。
我通过遵循脚本来实现这一目标。
function getUiConfig() {
return {
'callbacks': {
'signInSuccessWithAuthResult': function(authResult,redirectUrl) {
getUser(authResult.user);
return false;
}
},'credentialHelper': firebaseui.auth.CredentialHelper.NONE,'signInFlow': 'redirect','signInOptions': [
{
provider : firebase.auth.GoogleAuthProvider.PROVIDER_ID
},{
provider : firebase.auth.FacebookAuthProvider.PROVIDER_ID
},{
provider : firebase.auth.EmailAuthProvider.PROVIDER_ID,requireDisplayName: false
},],'tosUrl': '<tosUrl>','privacyPolicyUrl': '<privacyPolicyUrl>',};
}
初始化Firebase小部件
var ui = new firebaseui.auth.AuthUI(firebase.auth());
// The start method will wait until the DOM is loaded.
ui.start('#firebaseui-auth-container',getUiConfig());
Ajax调用:
function getUser(user) {
if (user) {
var uid = user.uid;
var email = user.email;
var name = user.displayName;
var source = "Firebase";
var profilePic = user.photoURL;
var dataString = 'uid=' + uid + '&name=' + name + '&email=' + email + '&profilePic=' + profilePic+ '&source=' + source;
$.ajax({
url: 'ajax/checkUser.php',type: "POST",data: dataString,dataType: 'json',cache: false,success: function (html) {
if(html.Islogin == 'yes'){
localStorage.setItem('loggedin','yes');
alert('login success');
location.reload();
}else{
alert('login fail');
}
}
});
}
}
HTML
<div class="poptxt padt100" id="firebaseui-auth-container">
<h2>Join Us</h2>
</div>
问题是,当将'signInFlow'设置为重定向时,在Auth Success上它首先将用户重定向到登录页面,然后我必须在ajax成功/失败中执行location.reload()
才能显示基于更新的内容在ajax响应上。
我只想在查询数据库后重定向用户。我尝试了async:在ajax中为false,但这是行不通的。有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)