Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
namespace LeadersLinked\Library;
3
 
4
class Facebook
5
{
6
    /**
7
     *
8
     * @var array
9
     */
10
    private $config;
11
 
12
 
13
    /**
14
     *
15
     * @param array $config
16
     */
17
    public function __construct($config)
18
    {
19
        $this->config = $config;
20
    }
21
 
22
    /**
23
     *
24
     * @param string $input
25
     * @return string
26
     */
27
    public static function base64_url_decode($input) {
28
        return base64_decode(strtr($input, '-_', '+/'));
29
    }
30
 
31
 
32
    /**
33
     *
34
     * @param string $signed_request
35
     * @return NULL|array
36
     */
37
    public function parse_signed_request($signed_request)
38
    {
39
        list($encoded_sig, $payload) = explode('.', $signed_request, 2);
40
        $secret = $this->config['leaderslinked.facebook.app_password'];
41
 
42
        // decode the data
43
        $sig = self::base64_url_decode($encoded_sig);
44
        $data = json_decode(self::base64_url_decode($payload), true);
45
 
46
        // confirm the signature
47
        $raw = true;
48
        $expected_sig = hash_hmac('sha256', $payload, $secret, $raw);
49
        if ($sig !== $expected_sig) {
50
            error_log('Facebook Bad Signed JSON signature!');
51
            return null;
52
        }
53
 
54
        return $data;
55
    }
56
 
57
 
58
}