php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 14-07-2015, 10:58
Siphrioth
 Registrierter Benutzer
Links : Onlinestatus : Siphrioth ist offline
Registriert seit: Jul 2015
Beiträge: 1
Siphrioth befindet sich auf einem aufstrebenden Ast
Standard X-Frame-Options Facebook Canvas SDK PHP Login Problem

Hallo,

ich versuche meine Problematik mal zu erklären und hoffe das es ein gibt der hier eine Lösung ggf. mir irgendwie helfen kann.

Also ich bin dabei eine Facebook app einzurichten, die beinhaltet nun meine website. Die Einstellungen soweit sind alle gemacht und hier mal der Code:
PHP-Code:
session_start();

header("Content-Type: text/html; charset=utf-8");
header('P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

$app_id             'xxx';  //Facebook App ID
$app_secret         'xxx'//Facebook App Secret
$required_scope     'public_profile,email';//'public_profile, publish_actions, email'; //Permissions required
$redirect_url       'https://www.meinesite.com/fb/index.php'//FB redirects to this page with a code

require_once __DIR__ "/facebook-php-sdk-v4-4.0-dev/autoload.php";

use 
FacebookFacebookSession;
use 
FacebookFacebookRequest;
use 
FacebookGraphUser;
use 
FacebookFacebookRedirectLoginHelper;

FacebookSession::setDefaultApplication($app_id $app_secret);
$helper = new FacebookRedirectLoginHelper($redirect_url);

try {
  
$session $helper->getSessionFromRedirect();
} catch(
FacebookRequestException $ex) {
    die(
" Error : " $ex->getMessage());
} catch(
Exception $ex) {
    die(
" Error : " $ex->getMessage());
}


if (
$session){ 
    
$user_profile = (new FacebookRequest($session'GET''/me'))->execute()->getGraphObject(GraphUser::className());

//WENN USER EINGELOGT IST
   
}else{
$login_url $helper->getLoginUrl( array( 'scope' => $required_scope ) );
echo
"<script>top.location.href='".$login_url."'</script>";

Nun wie man vielleicht sieht läd er die login URL via top.location.href Dies hat aber zu folge das die Seite aus Facebook raus springt. ABER!!! Wenn ich das nicht habe, und jemand hatte die App noch nie betreten und die erforderlichen rechte nicht Akzeptiert. dann bekomme ich eine Blanke seite / Frame mit dem Fehler

FireFoxConsole
"Load denied by X-Frame-Options: URL does not permit framing"

ChromeConsole:

Invalid 'X-Frame-Options' header encountered when loading 'https://www.meineSeite.com/fb/': 'GOFORIT' is not a recognized directive. The header will be ignored.
(index):1 Refused to display 'https://www.facebook.com/v2.3/dialog/oauth?client_id=1662254424008050&redir…5989030898f90d082895410739&sdk=php-sdk-4.0.23&scope=public_profile%2Cemail' in a frame because it set 'X-Frame-Options' to 'DENY'.

Habe es im übrigen auch mit "SAMEORIGIN" schon Probiert dann kommt der Fehler

FireFoxLoad denied by X-Frame-Options: https://www.meineSeite.com/fb/ does not permit cross-origin framing.

Chrome
Refused to display 'https://www.meineSeite.com/fb/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.


Ist aber ein User bereits mit den Rechten ausgestattet ggf. in der App angemeldet, so funktioniert es ohne "top."location.href und das er innerhalb von Facebook bleibt im Frame... Also liegt es scheinbar darin das er den Facebook Popup aufbaut für die Rechte befragung.

Jetzt meine Frage, wie könnte man das lösen? gibt es eine möglichkeit vorher die rechte zu prüfen ohne das man die $helper->getLoginUrl( ) nutzen muss um vielleicht ne art weiche zu stellen. oder wisst ihr vielleicht eine simple lösung?

Habe einiges schon ausprobiert und verzweifel so langsam dran. Vielen Dank vor her schon mal
Mit Zitat antworten
  #2 (permalink)  
Alt 14-07-2015, 13:30
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Die URL-Redirect-Variante des Login-Dialogs kann nicht in Frames oder Iframe jedweder Art angezeigt werden (aus Sicherheitsgründen). Du musst also per top.location.href erst mal aus dem Canvas „raus“, wenn du den Login-Dialog auf diese Weise aufrufen willst, dann führt da kein Weg dran vorbei.

Komfortabler und nutzerfreundlicher wird es, wenn du für den Login das JS SDK verwendest (Methode FB.login) – das erzeugt, wenn du dich „innerhalb“ von Facebook befindest, wie das mit einer Canvas-App der Fall ist, lediglich einen Overlay-Dialog, ohne die angezeigte Seite überhaupt zu verlassen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Java Software Development Kit (SDK) Tastatur Archiv / Trash 1 19-11-2012 10:30
Facebook App - Facebook Api problem PitPanda PHP Developer Forum 5 05-07-2012 19:15
delphi - canvas problem!! dringend paetz ASP, PERL, CGI, C und alles andere 10 29-10-2007 18:13
bei Frame-Weiterleitung kein Login yellow PHP Developer Forum 6 19-01-2005 15:33
Frame nach erfolgreichem login refreshn ?!? Darkspark HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 2 30-10-2004 14:22

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
Maqetta Open Source  HTML5-Editor ansehen Maqetta Open Source HTML5-Editor

Einen WYSIWYG-Editor zur visuellen Erstellung von Userinterfaces in HTML5 (Drag-and-Drop)

13.05.2019 Berni | Kategorie: HTML5/ EDITOR
NodeBB

NodeBB ist eine Foren-Software auf NodeJS-Basis

13.05.2019 Berni | Kategorie: PHP/ Forum PHP Software
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:51 Uhr.