垃圾箱/facebook-canvas-service-provider

为Silex提供的Facebook Canvas服务提供商

0.2.3 2020-06-20 12:54 UTC

This package is auto-updated.

Last update: 2024-09-20 22:33:11 UTC


README

为Silex提供的Facebook Canvas服务提供商

需求

silex 2.x

安装

安装FacebookCanvasServiceProvider的最佳方式是使用Composer

composer require junker/facebook-canvas-service-provider

示例

use Junker\Silex\Provider\FacebookCanvasServiceProvider;

$app['users'] = function() use ($app) { return new MyApp\UserProvider($app['db']); };

$app['security.firewalls'] =  [
	'fb_canvas' => [		
			'pattern' => '^/fb_canvas/',
			'users' => $app['users'],
			'anonymous' => true,
			'facebook_canvas' => [
				'login_path' => '/registration',
				'app_secret' => $facebook_app_secret
			]
	],
];

用户提供者必须实现FacebookCanvasUserProviderInterface

<?php
namespace MyApp;

use Symfony\Component\Security\Core\User\UserProviderInterface;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Core\User\User;
use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;

use Junker\Silex\Security\User\FacebookCanvasUserProviderInterface;

class UserProvider implements UserProviderInterface,FacebookCanvasUserProviderInterface
{
	private $db;

	public function __construct($db)
	{
		$this->db = $db;
	}
 
	public function loadUserByFacebookUid($fbUid)
	{
		$username = $this->db->fetchColumn('SELECT username FROM user WHERE facebook_uid=?', [$fbUid]);

		return $this->loadUserByUsername($username);
	}

	....
}