피드백 질문

소셜로그인에서 call back 주소 어떻게 입력하나요?

안녕하세요

라온보드 정상설치까지 하고 소셜로그인(네이버) 하려고 합니다.


 

CallBack URL 주소가 잘못된거 같은데 어떻게 입력시키면 될까요?

추천 0 비추천 0

댓글 13개

1. 네이버 로그인 실패시 수정 방법

(1) 에러현상: '네이버는 등록되지 않은 임의의 앱(사이트)에서 네이버 아이디로 로그인을 제공하는 것을 제한하고 있습니다.' 에러 메시지 출력
(2) 원인: 하단의 '로그인 오픈 API 서비스 환경'에 설정된 1) 서비스 URL 값이 실제 서비스 URL과 일치하지 않거나 2) 네이버아이디로로그인 Callback URL 값이 잘못된 경우
(3) 조치 방법
- 서비스 URL: 실제 서비스하는 사이트 URL과 동일한지 확인 (www, 포트번호, http/https 구분 없이 도메인명만 정확히 입력)
- Callback URL: 네이버 로그인 후 이동하게되는 URL로서 5개까지 다른 Callback URL 등록 가능

다른건 없는데 안되는 것 보니 뭔가 서비스 URL 에서 땀모님 도메인을 제대로 인식을 못하는 건가 싶네요..
관리자 환경설정에서 [네이버 Redirect URI] 여기 부분은 네이버 로그인후 이동할 주소를 적어주는 건가요??
callbackURL은 네이버 아이디로 로그인에만 작성하는건가요?
제 서버쪽에서 작성할 곳은 없는거죠?
1. 네이버 쪽에서 정보를 넘겨줄때 그걸 받아서 처리(로그인 or 회원가입 or 기존 회원계정과 연결)하는 부분입니다.

routes/web.php 에 보면

Route::get('social/{provider}/callback/', ['as' => 'social.callback', 'uses' => 'Auth\SocialController@handleProviderCallback']);

에 해당합니다.

2. callbackURL은 각 소셜로그인마다 작성해야 합니다.

3. 서버쪽에서 수정할 건 없습니다.
제 가상서버호스팅에서 소셜로그인이 안되서
cafe24웹호스팅 신청해서 설치했습니다.
모두 제대로 입력했고  회원가입을 누르면 네이버 로그인창이 나옵니다
거기서 제 아이디로 접속을 하면
[개발 중 상태에서는 등록된 아이디만 로그인할 수 있습니다.]
이런 메세지가 나오는데 개발중에는 최대20개 까지 된다고 네이버에 나오는데 ... 어떻게 된거죠?
테스트 도메인 : ddammo55.cafe24.com
https://developers.naver.com

여기서 '내 애플리케이션에서 애플리케이션 선택 > 멤버관리 > 테스터 ID 등록' 여기에 땀모님 아이디를 등록하셨나요??
<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Two\InvalidStateException;
use GuzzleHttp\Exception\ClientException;
use Carbon\Carbon;
use App\Models\SocialLogin;
use App\Models\User;
use App\Models\Config;
use Socialite;
use Auth;

class SocialController extends Controller
{
    public $request;
    public $userModel;
    public $socialModel;

    public function __construct(Request $request, User $user, SocialLogin $social)
    {
        $this->request = $request;
        $this->userModel = $user;
        $this->socialModel = $social;
    }

    // 소셜 연결(provider에 해당 provider로 연결 요청)
    public function redirectToProvider($provider)
    {
        $config = $this->getConfig($provider);

        return Socialite::with($provider)->setConfig($config)->redirect();
    }

  // .env가 아닌 DB에서 소셜 키 정보를 가져온다.
    public function getConfig($provider)
    {
        $config = cache('config.sns');
        $configArr = get_object_vars($config);
        $configArr = array_where($configArr, function ($value, $key) use($provider) {
            return str_contains($key, $provider);
        });

        return new \SocialiteProviders\Manager\Config($configArr[$provider.'Key'], $configArr[$provider.'Secret'], $configArr[$provider.'Redirect'], []);
    }

    // 소셜인증 후 데이터를 받아서 처리하는 콜백 메서드(config/services.php에서 지정)
    public function handleProviderCallback($provider)
    {
        try {
            $config = $this->getConfig($provider);
            $userFromSocial = Socialite::with($provider)->setConfig($config)->user();
        } catch (InvalidStateException $e) {
            return alert('잘못된 접근입니다.');
        } catch (ClientException $e) {
            return alert('Bad client credentials');
        }

      // 소셜 로그인
        if(auth()->guest()) {
            $result = $this->socialModel->socialLoginCallback($userFromSocial, $provider);

            if($result == 'view') {
                // 소셜 계정을 처음 사용해서 로그인 했을 경우 기존 계정과 연결/ 회원가입 화면으로 연결
                $params = $this->socialModel->getSocialParams($provider);
                $theme = cache('config.theme')->name ? : 'default';
                $skin = cache('config.join')->skin ? : 'default';

                return viewDefault("$theme.users.$skin.social", $params);
            } else { // 소셜 계정으로 로그인
                return redirect(route('home'));
            }
        } else { // 회원 정보 수정에서 소셜 계정 연결
            $message = $this->userModel->connectSocialAccount($userFromSocial, $provider, $this->request);
            return view('common.message', [
                'message' => $message,
                'popup' => 1,
                'reload' => 1,
            ]);
        }
    }

    // 소셜 로그인 -> 회원가입
    public function socialUserJoin(Request $request)
    {
        // 회원가입
        $user = $this->userModel->joinUser($request);
        // 소셜로그인 정보 등록
        $this->socialModel->register($request, $user);
        // 가입한 유저 로그인
        Auth::login($user);

        return redirect(route('home'));
    }

    // 소셜 로그인 -> 기존 계정과 연결
    public function connectExistAccount(Request $request)
    {
        // 입력한 비밀번호와 인증된 사용자의 비밀번호를 비교한다.
        if(Auth::validate(['email' => $request->email, 'password' => $request->password ])) {
            $user = User::where('email', $request->get('email'))->first();
            // 소셜로그인 정보 등록
            $this->socialModel->register($request, $user);
            // 회원 정보 업데이트 (회원 등급, 이메일 인증 정보)
            $this->userModel->updateUserBySocial($user);
            // 가입한 유저 로그인
            Auth::login($user);

            return redirect(route('home'));
        } else {
            return alert("비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.");
        }
    }

}
전체 86건 2페이지
번호 제목 글쓴이 날짜 조회 추천 비추천
76 질문

Re: 모듈을 이용한 테마,스킨만들기

6
라온보드 12/19 11702 0 0
75 질문

Re: Re: 모듈을 이용한 테마,스킨만들기

3
땀모 12/19 7291 0 0
74 질문

소셜로그인 에러화면입니다.

11
땀모 12/08 15824 0 0
73 질문

Re: 소셜로그인 에러화면입니다.

2
라온보드 12/11 9690 0 0
열람중 질문

소셜로그인에서 call back 주소 어떻게 입력하나요?

13
땀모 12/06 11885 0 0
71 버그제보

전체알림 창에서....

1
아파치 12/06 4040 0 0
70 질문

manual 스킨의 목록 단계 구성 방법은?

5
fm25 12/01 3788 0 0
69 버그제보

0.9.13 설치후에 -- 아래 글에 이어서

3
마젠토 12/01 6506 0 0
68 버그제보

라온보드 0.9.12 설치... 쓰기 권한이 없는 경우...

1
fm25 11/30 5542 0 0
67 버그제보

0.9.12 설치후에..

5
마젠토 11/30 9587 0 0