4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Laravel]socialteでRedirect URI mismatch error

Last updated at Posted at 2019-09-07

version

|laravel|5.8|
|---|---|---|
|socialite|4.1|

現象

ローカルマシンで開発しているlaravel5.8をherokuにデプロイしたあとsocialiteを利用したソーシャル認証が動かなくなりました。
heroku logsで確認するとcallbackされたリクエストが/login/github/callback?error=redirect_uri_mismatchとなっています。

解法

当たり前ですが、ローカルマシンではlocalhostをcallbackに指定していましたが、別ホストなのでconfig/services.phpにてredirectのURLも変更する必要があります。

client_idclient_secretは割と作り変えたりするのですがリダイレクトパスはローカルで開発し続けてるとそのままのため、つい忘れてしまい変なハマり方をしてしまいました。
何故かマニュアルではredirectもハードコーディングしてしまっていますが、コールバックURLも環境によって変化する変数に違いないため.env経由に切り替えて、herokuへはheroku config:set GITHUB_REDIRETで環境変数を設定するといった風にするのがベターかもしれません。

return [
    // 省略
    'github' => [
        'client_id' => env('GITHUB_CLIENT_ID'),
        'client_secret' => env('GITHUB_CLIENT_SECRET'),
    //  'redirect' => 'http://localhost/login/github/callback',
        'redirect' => env('GITHUB_REDIRECT'),
    ],
]
.env
# .env
GITHUB_REDIRCT=http://localhost/login/callback
$ heroku config:set GITHUB_REDIRECT=https://my-application.herokuapp.com/login/github/callback
4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?