SocialProvider

socialiteproviders ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

socialite๋ฅผ ์ด์šฉํ•˜์—ฌ ์ปค์Šคํ…€ provider๋ฅผ ๋งŒ๋“ค์–ด ์ ์šฉํ•˜๋ ค๊ณ  ํ• ๋•Œ ๊ทธ๋ƒฅ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ณต์žกํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ socialiteproviders/manager๋ผ๋Š” ๋ฒค๋”๋ฅผ ์ด์šฉํ•˜๋ฉด ์ปค์Šคํ…€์ ์šฉ์ด ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ™•์‹คํ•œ ๊ตฌ์กฐ๋ฅผ ์•Œ๊ณ ์‹ถ๋‹ค๋ฉด socialiteproviders/naver์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ oauth ๋ฒค๋”๋ฅผ ๋‹ค์šด๋ฐ›์•„ ๋œฏ์–ด๋ณด๋ฉด ๋˜๊ณ  ํ˜„์žฌ ์ž‘์„ฑํ•˜๋Š” ๊ธ€๋„ ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ๊ตฌ์กฐ๋ฅผ ๋œฏ์–ด ๋น„์Šทํ•˜๊ฒŒ ์ ์šฉํ•œ ์‚ฌ๋ก€์ด๋‹ค.

์šฐ์„  socialiteproviders/manager๋ฅผ ์„ค์น˜ํ•ด์ฃผ๋ฉด๋œ๋‹ค.

1. ํ™˜๊ฒฝ ์„ค์ • ํ•ด์ฃผ๊ธฐ

//config/services.php
return [

    //...

'saramin' => [
        'client_id' => env('SARAMIN_ID'),
        'client_secret' => env('SARAMIN_SECRET'),
        'redirect' => env('SARAMIN_CALLBACK'),
    ],

    //...
];

//config/app.php
'providers' => [
    //...
    \SocialiteProviders\Manager\ServiceProvider::class,
],

'aliases' => [
    //...
    'Socialite' => Laravel\Socialite\Facades\Socialite::class,
]

์œ„์™€ ๊ฐ™์ด services.php์™€ app.php์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ  .env์— ๊ฐ€์„œ services.php์˜ 3๊ฐœ์˜ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ •๋ณด๋ฅผ ๊ธฐ์ž…ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

2. Provider ์ถ”๊ฐ€

3. ProviderManager ์ƒ์„ฑ

saramin์˜ socialite๊ฐ€ ๋ถˆ๋ ธ์„๋•Œ ์ƒ์„ฑํ•œ Provider๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก Provider๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

4. EventServiceProvider์˜ listen์— ProviderManager ์ถ”๊ฐ€

5. Controller ์ƒ์„ฑ

์œ„์™€ ๊ฐ™์ด Controller๊นŒ์ง€ ์ƒ์„ฑํ•ด์ค€ํ›„ web.php์— ๋ผ์šฐํ„ฐ๋งŒ ๋“ฑ๋ก์„ ์‹œ์ผœ์ฃผ๋ฉด ์ ์šฉ์ด ๋œ๋‹ค!!

Socialiteproviders๊ฐ€ ์•„๋‹Œ Socialite๋งŒ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•

1. ์„ค์ •ํŒŒ์ผ๊ณผ Provider ์ƒ์„ฑ

์ฒซ๋ฒˆ์งธ์˜ ๋ฐฉ๋ฒ•๊ณผ ๊ฑฐ์˜ ๋™์ผํ•˜๋‚˜ app.php์—์„œ providers์˜ ์ •๋ณด๋งŒ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

2. AppServiceProvider์— ์‚ฌ๋žŒ์ธProvider ๋“ฑ๋ก

boot()๋ฉ”์„œ๋“œ๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค ํ”„๋กœ๋ฐ”์ด๋”๋“ค์ด ๋“ฑ๋ก๋œ ์ดํ›„์— ํ˜ธ์ถœ๋˜๊ธฐ ๋•Œ๋ฌธ์— Socialite์— ์œ„์™€ ๊ฐ™์ด ์ ‘๊ทผํ•˜์—ฌ Provider๋ฅผ ์ถ”๊ฐ€ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

Last updated