질문을 삭제하지 말아주세요.!
 
1
0
-1

Socialite 와 passport를 활용하여 로그인을 만드려고 합니다. passport로는


public function login(Request $request) {
        $this->validate($request, [
            'username' => 'required|email',
            'password' => 'required'
        ]);

        $params = [
            'grant_type'    => 'password',
            'client_id'     => $this->client->id,
            'client_secret' => $this->client->secret,
            'username'      => request('username'),
            'password'      => request('password'),
            'scope'         => '*'
        ];

        $request->request->add($params);

        $proxy = Request::create('oauth/token', 'POST');

        return Route::dispatch($proxy);

    }


위와같이 만들어서 간단하게 id, pw로 로그인은 성공하여 token을 받는데는 성공했는데

facebook 이나 github 등의 소셜 로그인을 구현하고자 하는건, 웹에서가 아닌

모바일 클라이언트에서 로그인을 어떻게 해야할 지 모르겠습니다.


Socialite를 활용하면 id까지는 나와서

social_login 테이블을 만들어

provider = facebook

provider_id = 나온 아이디

까지는 저장하겠는데 일반 웹이서는

Auth::login($id);로 로그인이 가능하지만

passport를 쓰는 api환경에서 어떻게 로그인 시켜서

토큰을 리턴할지 모르겠습니다. 참조할만한것이 있을까요

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1

      passport 를 사용하는 guard 이름이 api 로 가정하고,
      컨트롤러에서 AuthenticatesUsers 트레잇을 사용중이라면

      $token = $this->guard('api')->login($user)
      $this->guard('api')->setToken($token);

      하고, 아니면 그냥

      $token = Auth::guard('api')->login($user)
      Auth::guard('api')->setToken($token);

      default guard 가 api 로 지정하였다면 그냥 'api' 를 전달하지 않고 guard() 라고만 사용해도 되겠죠...

        CommentAdd your comment...