【问题标题】:How to redirect to new page on successful Facebook authentication如何在成功的 Facebook 身份验证后重定向到新页面
【发布时间】:2017-08-13 21:25:44
【问题描述】:
我有以下代码用于使用 firebase 进行 Facebook 身份验证。在成功的身份验证中,我需要重定向到新页面。我试图检查内部是否令牌不为空,然后是 window.redirect 函数,但它不起作用。任何人都可以帮助我。谢谢。
facebookLogin(){
// Sign in using a redirect.
firebase.auth().getRedirectResult().then(function(result) {
console.log(result);
if (result.credential) {
// This gives you a Google Access Token.
var token = result.credential.accessToken;
}
var user = result.user;
})
// Start a sign in process for an unauthenticated user.
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider);
}
【问题讨论】:
标签:
firebase
ionic2
firebase-authentication
facebook-authentication
【解决方案2】:
您应该使用 箭头函数 (()=> {...}) 而不是标准函数 (function(){...}),因此 this 关键字仍然引用组件代码而不是函数本身。这样,您仍然可以在该函数内部使用组件中定义的属性和方法。
facebookLogin(){
// Sign in using a redirect.
firebase.auth().getRedirectResult().then((result) => { // <--- Here!
console.log(result);
if (result.credential) {
// This gives you a Google Access Token.
var token = result.credential.accessToken;
}
var user = result.user;
// Now you can use the methods and properties from your component here!
this.navCtrl.setRoot(NextPage);
});
// Start a sign in process for an unauthenticated user.
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider);
}
【解决方案3】:
成功验证后重定向到新页面 -
-
创建一个在页面加载时加载的函数 -
function initApp() {
firebase.auth().getRedirectResult().then(function (result) {
if (result.credential) {
window.location='newpage.html';//Replace with your newpage URL
}
}
}
window.onload = function () {
initApp();
};
注意 - 带有 window.onload 函数的脚本应该位于调用下面第 2 点中给出的 facebook 登录方法的页面上。
2.(推荐)将提供程序调用脚本单独保存在另一个函数中 -
function signInWithFacebook() {
var provider = new firebase.auth.FacebookAuthProvider();
firebase.auth().signInWithRedirect(provider);
}