如何使用Facebook和谷歌在Slim Framwork中登录?

时间:2017-05-16 06:36:48

标签: php oauth facebook-php-sdk slim slim-3

  

目前我正在使用PHP Slim框架版本3,我想   使用Facebook或谷歌帐户登录。

我创建了一个facebook开发者帐户,并在我的代码中使用了api id和密钥。

下面是我的php slim框架代码

 @Html.ListBoxFor(m => m.SelectedCompanyList, new MultiSelectList(Model.Companies, "Id","CompanyName", Model.SelectedCompanyList), new {@class = "listbox"})
  

条件转到其他部分

<?php use \Psr\Http\Message\ServerRequestInterface as Request; use \Psr\Http\Message\ResponseInterface as Response; require 'vendor/autoload.php'; require 'src/facebook.php'; $app = new \Slim\App; $facebook = new Facebook(array( 'appId' => '1277740795608952', 'secret' => 'c9e0d242e62a82374a043ff286526db7', )); $app->get('/', function () use ($facebook) { $user_id = $facebook->getUser(); if($user_id) { try { $user_profile = $facebook->api('/me'); echo "Hi " . $user_profile['name']; } catch(FacebookApiException $e) { echo 'Please <a href="' . $facebook->getLoginUrl() . '">login.</a>'; } } else { echo 'Please <a href="' . $facebook->getLoginUrl() . '">login with Facebook.</a>'; } }); $app->run(); ?>

  

并且我一直得到用户ID

login with facebook

  

我不知道我忘记了什么,任何人都知道更多吗?

1 个答案:

答案 0 :(得分:0)

尝试把它放在行前:“$ user_id = $ facebook-&gt; getUser();”

$req_perms = "publish_stream,offline_access,user_status,email,read_stream";

$session = $facebook->getSession();

$loginUrl = $facebook->getLoginUrl(array('canvas'=>1,'fbconnect' => 0,'req_perms'=>$req_perms));

if (!$session) { echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";exit;}