수색…


페이스 북 개발자에게 앱 만들기

[ https://developers.facebook.com/](https://developers.facebook.com/)로 이동하여 앱을 만듭니다. 새 앱을 만든 후 인터페이스

Add product 클릭하고 Facebook Login 선택하십시오.

앱 페이스 북 로그인 설정

yii2-authclient 설치

이 확장 프로그램을 설치하기 전에 yii2-app를 설치해야합니다. 이 예제에서는 yii2-basic 템플릿을 사용합니다. 여기 에 설치 안내서.

운영

composer require --prefer-dist yiisoft/yii2-authclient

또는 추가

"yiisoft/yii2-authclient": "~2.1.0"

composer.jsonrequire 섹션에 composer.json .

config components config authClientCollection 을 추가하십시오.

return [
    'components' => [
        'authClientCollection' => [
            'class' => 'yii\authclient\Collection',
            'clients' => [
                'facebook' => [
                    'class' => 'yii\authclient\clients\Facebook',
                    'clientId' => 'facebook_client_id',
                    'clientSecret' => 'facebook_client_secret',
                ],
            ],
        ]
    ],
    // ...
];

facebook_client_id 는 애플리케이션 ID이고 facebook_client_secret 는 앱 비밀번호입니다. 정보 페이스 북 클라이언트 ID 및 클라이언트 비밀 정보

인증 조치 추가 및 콜백 설정

  1. 추가 버튼 Login as facebook account 보기에 Login as facebook account 으로 로그인 :

보기 폴더에서 site/login.php 를 편집하고 페이지 내용에이 줄을 추가하십시오 login :

<?= yii\authclient\widgets\AuthChoice::widget([
     'baseAuthUrl' => ['site/auth'],
     'popupMode' => false,
]) ?>

위에서 우리는 SiteController 에서 auth 액션이 OAuth2 플로우를 SiteController 하도록 설정할 것입니다.

이제 우리는 그것을 창조합니다.

class SiteController extends Controller
{
    public function actions()
    {
        return [
            'auth' => [
                'class' => 'yii\authclient\AuthAction',
                'successCallback' => [$this, 'onAuthSuccess'],
            ],
        ];
    }

    public function onAuthSuccess($client)
    {
        // do many stuff here, save user info to your app database
    }
}

우리는 yii\authclient\AuthAction 을 사용하여 URL을 만들고 페이스 북 로그인 페이지로 리디렉션합니다.

기능 onAuthSuccess 는 사용자 정보를 얻고 앱에 로그인하는 데 사용됩니다.

Facebook 앱 설정에 redirect_url 추가

yii2-app에서 prettyUrl을 사용하도록 설정하면 redirect_uri가 다음과 같이됩니다.

http://<base_url>/web/site/auth

예쁜 URL을 사용 중지하십시오.

http://<base_url>/web/index.php?r=site%2Fauth

예:

설치 redirect_uri

onAuthSuccess 함수의 예제

/**
 * @param $client ClientInterface
 */
public function onAuthSuccess($client)
{
    //Get user info
    /** @var array $attributes */
    $attributes = $client->getUserAttributes();
    $email = ArrayHelper::getValue($attributes, 'email'); //email info
    $id = ArrayHelper::getValue($attributes, 'id'); // id facebook user
    $name = ArrayHelper::getValue($attributes, 'name'); // name facebook account

    //Login user
    //For demo, I will login with admin/admin default account
    $admin = User::findByUsername('admin');
    Yii::$app->user->login($admin);
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow