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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:09 Uhr.