У меня есть приложение, выполняющее логин facebook, который хорошо работает, но каждый раз, когда я его снова открываю, мне нужно снова подключиться к facebook для входа в систему. Я также использую sdk для входа в google, где я могу вызвать функцию gSignIn.signInSilently()
, есть ли что-то подобное для facebook? Я нашел this для javascript sdk, но я не знаю, возможно ли это для SDK ios и как его использовать в swift ...Facebook IOS SDK: как сделать молчаливый вход?
1
A
ответ
5
В SDK Facebook автоматически сохраняется состояние входа в систему, что подтверждается проверкой на наличие токен доступа.
Вы можете проверить для доступа, используя следующий метод:.
FBSDKAccessToken.currentAccessToken()
Вы можете проверить на наличие маркера, который будет означать, что пользователь вошел в систему
Проверьте docs больше Детали.
1
я попробовал этот
if(![FBSDKAccessToken currentAccessToken])
{
FBSDKLoginManager *manager = [[FBSDKLoginManager alloc]init];
[manager logInWithReadPermissions:@[@"public_profile", @"email",@"user_photos"] handler:^(FBSDKLoginManagerLoginResult *result,NSError *error)
{
if(error == nil)
{
NSLog(@"Facebook - successfully login %@",result.token);
//login successfully
//do your stuff here
}
}];
}
else
{
//already login
//Do Your stuff here
}
0
Я спасаю лексемы строку доступа и вручную установить его на последовательных запусков, чтобы обойти поток повторного входа в систему.
func loginWithFacebook() {
//Check for previous Access Token
if let accessToken = AccessToken.current {
//AccessToken was obtained during same session
getAccountDetails(withAccessToken: accessToken)
}
else if let strAuthenticationToken = UserDefaults.standard.string(forKey: "AccessToken_Facebook") {
//A previous access token string was saved so create the required AccessToken object
let accessToken = AccessToken(authenticationToken: strAuthenticationToken)
//Skip Login and directly proceed to get facebook profile data with an AccessToken
getAccountDetails(withAccessToken: accessToken)
}
else {
//Access Token was not available so do the normal login flow to obtain the Access Token
LoginManager().logIn(readPermissions: [.publicProfile, .email], viewController: nil) { loginResult in
switch loginResult {
case .failed(let error):
print(error)
case .cancelled:
print("User cancelled login.")
case .success(let grantedPermissions,
let declinedPermissions,
let accessToken):
//Save Access Token string for silent login purpose later
let strAuthenticationToken = accessToken.authenticationToken
UserDefaults.standard.set(strAuthenticationToken,
forKey: "AccessToken_Facebook")
//Proceed to get facebook profile data
self.getAccountDetails(withAccessToken: accessToken)
}
}
}
}
func getAccountDetails(withAccessToken accessToken: AccessToken) {
let graphRequest: GraphRequest = GraphRequest(graphPath : "me",
parameters : ["fields" : "id, name, email"],
accessToken : accessToken,
httpMethod : GraphRequestHTTPMethod.GET,
apiVersion : GraphAPIVersion.defaultVersion)
graphRequest.start { (response, result) in
switch result {
case .success(let resultResponse):
print(resultResponse)
case .failed(let error):
print(error)
}
}
}
ПРИМЕЧАНИЕ: Для простоты этого примера, строка Facebook Маркер доступа в настоящее время сохраняется в UserDefaults
, но в идеале он должен быть сохранен в брелок.
(Swift 4/Facebook SDK 4,30)
Смежные вопросы
- 1. Facebook SDK (Вход через Facebook)
- 2. Facebook SDK: вход автоматически
- 3. Facebook SDK Вход в систему iOS с установленным Facebook установленным
- 4. Как использовать вход в Facebook SDK 4.6 для iOS?
- 5. Facebook PHP SDK постоянный Вход
- 6. Facebook SDK IOS xcode
- 7. Вход QuickBlox с собственным SDK от Facebook?
- 8. IOS FACEBOOK SDK, ВЫХОД ИЗ FB И ВХОД ПОСЛЕ
- 9. Facebook SDK 4.0 IOS Swift Вход пользователя из программно
- 10. Facebook iOS SDK FRAMEWORK_SEARCH_PATH
- 11. IOS - Facebook SDK - SSO - Вход без входа в диалоговом
- 12. Facebook SDK на iOS
- 13. Вход в систему в Facebook SDK для iOS
- 14. iOS с Facebook SDK
- 15. Facebook Help, iOS SDK
- 16. Facebook IOS SDK FBWebDialog
- 17. Facebook SDK и iOS
- 18. Facebook, iOS SDK
- 19. Facebook Вход в систему iOS SDK застрял в «Подтверждении»
- 20. Facebook SDK 4.x - Показать Модальный Вход на iOS
- 21. IOS Facebook SDK - FBLoginView
- 22. facebook-ios-sdk logout
- 23. Facebook iOS SDK Выход
- 24. Facebook SDK IOS 2
- 25. FaceBook IOS SDK - GitHub
- 26. IOS 8 facebook sdk
- 27. Facebook SDK IOS ошибка
- 28. Как сохранить вход в facebook с единством SDK
- 29. Facebook Вход в систему ios?
- 30. ios условно выключить facebook sdk
facebook не обеспечивают бесшумную логин, но вы можете проверить, существует ли сеанс пользователя или нет –
если FBSDKAccessToken.currentAccessToken()! = Ноль {// пользователь вошел в систему } else {// do Login здесь} –