LoginSignup
2
7

More than 5 years have passed since last update.

Laravel5.5でSocialiteに含まれていないLINE認証

Last updated at Posted at 2018-10-21

こちらの記事を参考に構築後

2018年10月21日現在の最新のバージョン

それぞれ以下

Socalite3.0
Laravel5.5
LINEログインv2

で動作するよう

LineProvider.phpを書き換えました。

LineProvider.php

<?php

namespace App\Socialite;

use Laravel\Socialite\Two\AbstractProvider;
use Laravel\Socialite\Two\ProviderInterface;
use Laravel\Socialite\Two\User;

class LineProvider extends AbstractProvider implements ProviderInterface
{
    protected function getAuthUrl($state)
    {
        return $this->buildAuthUrlFromBase('https://access.line.me/dialog/oauth/weblogin', $state);

    }
    protected function getTokenUrl()
    {

        return 'https://api.line.me/v2/oauth/accessToken/';

    }
    public function getAccessTokenResponse($code)
    {


        $response = $this->getHttpClient()->post($this->getTokenUrl(), [
            'headers' => ['Accept' => 'application/json'],
            'form_params' => [
                'grant_type' => 'authorization_code',
                'code' => $code,
                'redirect_uri' => $this->redirectUrl,
                'client_id' => $this->clientId,
                'client_secret' => $this->clientSecret
            ],
        ]);

        return json_decode($response->getBody(), true);
    }
    protected function getUserByToken($token)
    {

        $response = $this->getHttpClient()->get('https://api.line.me/v2/profile', [
            'headers' => [
                'Authorization' => 'Bearer '.$token,
            ],
        ]);

        return json_decode($response->getBody(), true);
    }

    protected function mapUserToObject(array $user)
    {
        return (new User())->setRaw($user)->map([
            'id' => $user['userId'],
            'name' => $user['displayName'],
            'pictureUrl' => $user['pictureUrl'],
        ]);
    }
}

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7