gpt4 book ai didi

ios - Facebook 登录 您已经授权 APP_NAME

转载 作者:行者123 更新时间:2023-12-01 16:50:16 24 4
gpt4 key购买 nike

我在使用 facebook 登录时遇到问题。我将 Facebook 集成到我的应用程序中。用户第一次登录时,它显示登录页面,但从下一次开始,它会转到“您已经授权 APP_NAME”页面。

我检查了 Scrumptious 教程,这是我从 Facebook SDK 获得的示例。它的工作方式也一样。

我想从不同的用户登录,我不希望每次都出现“您已经授权 APP_NAME”的页面。

如何解决这个问题。

最佳答案

在您的应用委托(delegate)类中尝试此代码。

它会检查 session 是否打开,并在您关闭连接时从设备缓存中清除您的登录凭据。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
LoginVC *loginScreen=[[LoginVC alloc]initWithNibName:@"LoginVC" bundle:nil];

navigationController=[[UINavigationController alloc]initWithRootViewController:loginScreen];

self.navigationController.navigationBar.tintColor = [UIColor blackColor];
self.window.rootViewController=self.navigationController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];

// See if we have a valid token for the current state.
if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded) {
[self openSession];
// To-do, show logged in view
} else {
// No, display the login page.
[self showLoginView];
}
return YES;


}
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen: {
UIViewController *topViewController =
[self.navigationController topViewController];
if ([[topViewController presentedViewController]
isKindOfClass:[LoginVC class]]) {
[topViewController dismissViewControllerAnimated:YES completion:nil];
}
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
// Once the user has logged in, we want them to
// be looking at the root view.
[self.navigationController popToRootViewControllerAnimated:NO];

[FBSession.activeSession closeAndClearTokenInformation];

[self showLoginView];
break;
default:
break;
}

if (error) {
UIAlertView *alertView = [[UIAlertView alloc]
initWithTitle:@"Error"
message:error.localizedDescription
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
}
}

- (void)openSession
{
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
}

- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
return [FBSession.activeSession handleOpenURL:url];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
// We need to properly handle activation of the application with regards to Facebook Login
// (e.g., returning from iOS 6.0 Login Dialog or from fast app switching).
[FBSession.activeSession handleDidBecomeActive];
}

我希望这段代码会有所帮助。

关于ios - Facebook 登录 您已经授权 APP_NAME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16692075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com