微信绑定登录(开放平台)

2019-08-12 09:53:41 阅读:1 编辑

微信绑定登录(开放平台)

Composer require overtrue/Laravel-socialite
User 表加个 wechat_id 字段

WechatLoginController

<?PHP

namespace App\Http\Controllers;

use App\User;
use Socialite;

/**
 * 微信登录模块
 *
 * Class WechatLoginController.
 */
class WechatLoginController extends Controller
{
    /**
     * 跳转到微信登录页面
     *
     * @return \Symfony\Component\HttpFoundation\RedirectResponse
     */
    public function redirectToProvider ()
    {return Socialite::driver ('wechat')->redirect ();}

    /**
     * 微信扫码登录后的回调函数
     *
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View
     */
    public function handleProviderCallback ()
    {$wechat_user = Socialite::driver ('wechat')->user ();
        if (\Auth::check ()) {$user = \Auth::user ();
            $user->wechat_id = $wechat_user->id;
            if (empty ($user->avatar)) {$user->avatar = $wechat_user->avatar;
            }
            if (empty ($user->nickname)) {$user->nickname = $wechat_user->nickname;
            }
            $user->save ();

            return redirect ()->route ('user');
        } else {$user = \App\Models\User::where ('wechat_id', $wechat_user->id)->first ();
            if ($user) {\Auth::login ($user);

                return redirect ()->route ('home');
            } else {return view ('pages.error', ['msg' => '该微信号未绑定,请先绑定']);
            }
        }
    }
}
.env
WECHAT_KEY=wx159 ac90 a15 a9 df98
WECHAT_SECRET=527 d43 ddafdada015 efa2 ecdae158 d94
WECHAT_REDIRECT_URI=https://s.zhyxm.com/OAuth/wechat/callback
web.php
Route::get ('/OAuth/wechat', 'WechatLoginController@redirectToProvider')->name ('wechat.oauth.login');
Route::get ('/OAuth/wechat/callback', 'WechatLoginController@handleProviderCallback');