HybridAuthでFacebookログインする際の権限について

HybridAuthの内部で、Facebookのscopeは

email, user_about_me, user_birthday, user_hometown, user_website, offline_access, read_stream, publish_stream, read_friendlists

がデフォルトに設定されています。scopeの設定を空にすると上記のパーミッションが使われるので、ログインに使いたいだけの場合、不要な許可をユーザーに求めることになります。

image

image

詳細なパーミッションの説明は
http://developers.facebook.com/docs/authentication/permissions/
に書かれています。

今回はFacebookをログインするためだけに使います。ここまでの情報は不要なので、Basic Information(基本データ)だけにします。基本的にはscopeを空にすれば良いはずです。

ところが、HybridAuthの内部で文字列をemptyで判断しているため、空にするとデフォルトに上書きされてしまいます。

if( isset( $this->config["scope"] ) && ! empty( $this->config["scope"] ) ){
	$this->scope = $this->config["scope"];
}

対策としては、scopeに空白をひとついれておけばOKです。

"scope"   => " ",

前回の「Symfony 1.4でHybridAuthを使ってtwitter/facebookログインを実装する」でymlにした場合は、

scope: " "

としておきます。

image

これで「このアプリが受け取る情報」の欄を減らすことができました。

ちなみに、一度許可したアプリをFacebook上から削除したい場合は

http://www.facebook.com/settings?tab=applications

から削除できます。

image


タグ: , ,

新しく会社作りました!

コメントをどうぞ