亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Firebase-刪除并重新安裝應用程序不會取消對用戶的身份驗證

Firebase-刪除并重新安裝應用程序不會取消對用戶的身份驗證

iOS
慕蓋茨4494581 2019-10-31 12:52:38
在使用以下代碼對用戶進行身份驗證之后(以下是我的代碼的精簡版本,因此僅顯示成功的登錄邏輯)...let firebaseReference = Firebase(url: "https://MY-FIREBASE.firebaseio.com") FBSession.openActiveSessionWithReadPermissions(["public_profile", "user_friends"], allowLoginUI: true,    completionHandler: { session, state, error in        if state == FBSessionState.Open {            let accessToken = session.accessTokenData.accessToken            firebaseReference.authWithOAuthProvider("facebook", token: accessToken,                withCompletionBlock: { error, authData in                    if error != nil {                        // Login failed.                    } else {                        // Logged in!                        println("Logged in! \(authData)")                    }            })        }    })}(即啟動和運行應用程序,成功登錄)。如果您隨后刪除該應用程序并將其重新安裝在同一設備上,則此調用(我正在應用程序委托中使用該調用來確定用戶是否已登錄)將始終返回他們已登錄。if firebaseReference.authData == nil {    // Not logged in} else {    // Logged in}這是為什么?我本以為刪除該應用程序并重新安裝它應該會擦除所有數據。如果您在iOS模擬器中重置“內容和設置”,然后安裝該應用,則該firebaseReference.authData屬性將再次為nil。
查看完整描述

3 回答

?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

Firebase身份驗證會話在iOS鑰匙串中保留在用戶設備上。卸載應用程序時,不會刪除該應用程序的鑰匙串數據。


如果要手動清除數據,則可以將一些其他元數據與應用程序一起存儲,并手動調用FirebaseRef.unauth()以清除持久化的會話。請參閱#4747404:在卸載應用程序時刪除鑰匙串項,以獲取其他參考。


查看完整回答
反對 回復 2019-10-31
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

在AppDelegate的didFinishLaunchingWithOptions函數(在返回true之前)的末尾添加以下代碼可以快速進行。


let userDefaults = NSUserDefaults.standardUserDefaults()

if userDefaults.valueForKey("appFirstTimeOpend") == nil {

    //if app is first time opened then it will be nil

    userDefaults.setValue(true, forKey: "appFirstTimeOpend")

    // signOut from FIRAuth

    do {

        try FIRAuth.auth()?.signOut()

    }catch {


    }

    // go to beginning of app

} else {

   //go to where you want

}


查看完整回答
反對 回復 2019-10-31
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

對于快速4相同的答案:


let userDefaults = UserDefaults.standard

if userDefaults.value(forKey: "appFirstTimeOpend") == nil {

    //if app is first time opened then it will be nil

    userDefaults.setValue(true, forKey: "appFirstTimeOpend")

    // signOut from FIRAuth

    do {

        try Auth.auth().signOut()

    }catch {


    }

    // go to beginning of app

} else {

    //go to where you want

}


查看完整回答
反對 回復 2019-10-31
  • 3 回答
  • 0 關注
  • 709 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號