20075


会員制のwebサービスを作ろうとしています。  
opauthでtwitterとfacebookのデータは取得できているのですが、認証に関して2点か分からないことがあります。

  1. twitterに関しては、「token」「secret」2つの一致を認証の条件にすれば良いでしょうか。  
(twitterはAPIのtokenを無期限にしているため、これで良いのではないかと考えています)

  2. facebookに関しては「token」「signature」がログイン毎に変化するので何を認証の条件にすれば良いのしょうか。

詳しい方がいらっしゃいましたら、ご教示いただけないでしょうか。  
お願いいたします。

【facebookから取得したデータ】

[code]

    array(
        'auth' => array(
            'provider' => 'Facebook',
            'uid' => '*****',
            'info' => array(
                'name' => '*****',
                'image' => '*****'
            ),
            'credentials' => array(
                'token' => '*****',
                'expires' => '*****'
            ),
            'raw' => array(
                'name' => '*****',
                'id' => '*****'
            )
        ),
        'timestamp' => '*****',
        'signature' => '*****',
        'validated' => true
    )
    
[/code]

【twitterから取得したデータ】

[code]

    array(
        'auth' => array(
            'uid' => (int) *****,
            'info' => array(
                'name' => '*****',
                'nickname' => '*****',
                'urls' => array(
                    'twitter' => '*****',
                    'website' => null
                ),
                'location' => '',
                'description' => '',
                'image' => '*****'
            ),
            'credentials' => array(
                'token' => '*****',
                'secret' => '*****'
            ),
            'raw' => array(
                'id' => (int) *****,
                'id_str' => '*****',
                'name' => '*****',
                'screen_name' => '*****',
                'location' => '',
                'description' => '',
                'url' => null,
                'entities' => array(
                    'description' => array(
                        'urls' => array()
                    )
                ),
                'protected' => (int) 0,
                'followers_count' => (int) 1,
                'friends_count' => (int) 1,
                'listed_count' => (int) 0,
                'created_at' => '*****',
                'favourites_count' => (int) 0,
                'utc_offset' => null,
                'time_zone' => null,
                'geo_enabled' => (int) 0,
                'verified' => (int) 0,
                'statuses_count' => (int) 0,
                'lang' => 'ja',
                'contributors_enabled' => (int) 0,
                'is_translator' => (int) 0,
                'is_translation_enabled' => (int) 0,
                'profile_background_color' => 'F5F8FA',
                'profile_background_image_url' => null,
                'profile_background_image_url_https' => null,
                'profile_background_tile' => (int) 0,
                'profile_image_url' => '*****',
                'profile_image_url_https' => '*****',
                'profile_link_color' => '2B7BB9',
                'profile_sidebar_border_color' => 'C0DEED',
                'profile_sidebar_fill_color' => 'DDEEF6',
                'profile_text_color' => '333333',
                'profile_use_background_image' => (int) 1,
                'has_extended_profile' => (int) 0,
                'default_profile' => (int) 1,
                'default_profile_image' => (int) 0,
                'following' => (int) 0,
                'follow_request_sent' => (int) 0,
                'notifications' => (int) 0
            ),
            'provider' => 'Twitter'
        ),
        'timestamp' => '*****',
        'signature' => '*****',
        'validated' => true
    
[/code]


CC BY-SA 3.0
2015-12-16T09:42:52.190
20066
2015-12-17T02:00:03.883
2015-12-17T02:00:03.883
76
13700
question
php cakephp
opauthを用いたtiwtterおよびfacebook認証で用いるデータ


現状の挙動がどうあれ、OAuth で得られるトークンは後続のリクエストに使う資格情報の一つにすぎません。何らかの理由でリセットすることもあります。

そう考えると、IDプロバイダとなる Twitter や Facebook から提供されるIDである、`$resp['auth']['uid']`
を使うのが適切でしょう。


CC BY-SA 3.0
2015-12-16T12:01:25.953
20075
2015-12-16T12:01:25.953
8000
20066
answer