[laravel] Socialite - Naver

[laravel] Socialite - Naver updated_at: 2024-11-20 14:09

Socialite - Naver

laravel/socialite 는 편안한 기능을 제공하지만 아쉽게도 Naver나 Kakao의 social login을 제공하지는 않는다.
그러나 Socialite Providers 는 다양한 social login을 제공하여 편안하게 사용할 수가 있다
Socialite Providers 는 laravel/socialite 와 완전히 다른 것이 아니라 laravel/socialite 를 이용하여 추가적인 Provider 만 제공하고 있음을 명시하여야 한다.
그러므로 기본적인 세팅은 laravel/socialite 와 동일하다.

Socialite Providers 공식 홈페이지

Install

composer require socialiteproviders/naver

client_id 및 client_secret 획득

애플리케이션 등록(API 이용 신청)

  • 사용 API : 네이버 로그인
  • 환경 추가: PC 웹
  • Callback URL : YourDomain/auth/social/naver/callback

작업이 완료되면 Naver 용 lient Id 와 Client Secret가 생성됩니다.

환경설정

.env

NAVER_CLIENT_ID=[Naver Client Id]
NAVER_CLIENT_SECRET=[Naver Client Secret]

config/services.php

'naver' => [
  'client_id' => env('NAVER_CLIENT_ID'),
  'client_secret' => env('NAVER_CLIENT_SECRET'),
  'redirect' => 'https://YourDomain/auth/social/naver/callback',
],

app/Providers/EventServiceProvider.php

$listen에 아래를 추가한다.

protected $listen = [
  ..........
  \SocialiteProviders\Manager\SocialiteWasCalled::class => [
      'SocialiteProviders\Naver\NaverExtendSocialite@handle'
  ],
];

소셜로그인 구현

blade

<a href='/auth/social/naver/redirect'>Naver</a>

route

Route::get('/auth/social/{provider}/redirect', 'Social\AuthenticatedSessionController@redirectToProvider');
Route::get('/auth/social/{provider}/callback', 'Social\AuthenticatedSessionController@handleProviderCallback');

controller

  • AuthenticatedSessionController
use Laravel\Socialite\Facades\Socialite;
..........
class AuthenticatedSessionController extends Controller
{
  public function redirectToProvider($provider)
  {
    return Socialite::driver($provider)->redirect();
  }

  public function handleProviderCallback($provider)
  {
    $socialUser = Socialite::driver($provider)->stateless()->user();
    // $socialUser 를 이용하여 db 작업 및 기타 작업 완료
  }


}
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글