Laravel 社会化登录简介

socialite作为官方包使用起来非常方便,目前支持大多数的社会化登录网站,比如微信,微博,Github等等。

具体支持哪些网站,参见列表:https://socialiteproviders.github.io/about.html

比如网站需要对接微信web授权登录,使用 https://socialiteproviders.github.io/providers/weixin.html 即可,文档已经写的比较完善,这里不再赘述。

举个微信实际例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

namespace App\Http\Controllers\WeChat;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;


class WeChatController extends Controller
{
    public function oauth(Request $request)
    {
        $url = $request->input('url', ''); // 来源url
        return Socialite::with('weixin')->redirectUrl(url("wechat/auth/callback?url=".urlencode($url)))->redirect();
    }

    public function callback(Request $request)
    {
        $oauthUser = Socialite::with('weixin')->user();
        $request->session()->put('user_wechat', $oauthUser->user);
        return redirect($request->input('url'));
    }
}

在中间件中判断session是否存在,不存在调用oauth接口即可。可以说灰常方便了😀

updatedupdated2018-05-192018-05-19
Load Comments?