2011-08-30 3 views
1

J'ai une UIWebView dans mon application où je charge le profil facebook de mon application. J'utilise le signe unique de Facebook sur SDK (Graph API). Et je me suis connecté à Facebook dans le Safari en arrière-plan en utilisant mon application. Mais quand j'essaie de charger le profil du jeu dans la vue web de mon application, je peux toujours voir les boutons "Connexion" et "Inscription". J'ai essayé de configurer des cookies, l'URL du document principal et l'URL relative, mais pas d'utilisation. Je suis ici mon code ajoutais aussi ici,Page Facebook dans UIWebView

NSURL *url = [NSURL URLWithString:@"http://www.facebook.com/myapp" relativeToURL:[NSURL URLWithString:@"http://login.facebook.com"]]; 
    NSMutableURLRequest *request = nil; 

    if(url) 
     request = [NSMutableURLRequest requestWithURL:url]; 

    NSArray * availableCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://login.facebook.com"]]; 
    NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:availableCookies]; 
    if(request) 
    { 
     [request setHTTPShouldHandleCookies:YES]; 
     [request setMainDocumentURL:[NSURL URLWithString:@"http://login.facebook.com"]]; 
     [request setAllHTTPHeaderFields:headers];//login.facebook.com 
     [mWebView loadRequest:request]; 
    } 

Répondre

1

Vous pouvez exécuter dans la situation que je décris dans la réponse sur cette page:

Facebook iOS SDK not storing cookies for access

+0

Merci beaucoup pour la réponse. Cela signifie que nous ne pouvons pas aller chercher les cookies de Facebook. – YPK

+0

Pour autant que je sache, sur iOS, vous ne pouvez pas obtenir les cookies que l'application Facebook utilise, ou que Safari mobile utilise. Si vous obtenez un jeton d'accès sans ouvrir l'un ou l'autre des deux autres (comme s'ils ne sont pas disponibles), les cookies seront locaux à votre application et vous pourrez les utiliser. Il est possible de modifier légèrement le Facebook iOS SDK pour forcer cette situation. Cela signifie cependant que vous abandonnez l'authentification unique pour les utilisateurs de l'application Facebook officielle. – giff

+0

Cela ne permet-il pas une utilisation malveillante des cookies facebook.com? Un développeur d'applications pourrait apparemment demander à l'utilisateur de se connecter avec Facebook, capturer les cookies facebook.com lorsque la connexion est réussie et les utiliser pour agir au nom de l'utilisateur. Est-ce que j'ai râté quelque chose? – Esteban