PHPackages                             huoshaotuzi/sociate - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. huoshaotuzi/sociate

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

huoshaotuzi/sociate
===================

基于Laravel开发的第三方登录插件，支持QQ、新浪微博、百度登录。

v1.0.2(7y ago)5229[1 issues](https://github.com/huoshaotuzi/sociate/issues)MITPHPPHP &gt;=5.3.0

Since Feb 14Pushed 7y agoCompare

[ Source](https://github.com/huoshaotuzi/sociate)[ Packagist](https://packagist.org/packages/huoshaotuzi/sociate)[ RSS](/packages/huoshaotuzi-sociate/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (3)Dependencies (1)Versions (7)Used By (0)

sociate for laravel
===================

[](#sociate-for-laravel)

基于 Laravel 开发的第三方登录插件,支持 QQ、新浪微博、百度、Github、微信公众号登录。

演示地址：[火兔游戏](http://huotuyouxi.com/login)

更新记录
====

[](#更新记录)

- 2019-05-06 支持微信公众号登录
- 2019-02-28 支持 Github 登录

安装
==

[](#安装)

```
composer require huoshaotuzi/sociate

```

在 `config/app.php` 注册服务器提供者:

```
/*
 * Package Service Providers...
 */
Huoshaotuzi\Sociate\SociateServiceProvider::class,

```

发布配置文件到 `config` 目录下:

```
php artisan vendor:publish --provider="Huoshaotuzi\Sociate\SociateServiceProvider"

```

在 `.env` 文件添加第三方应用配置信息,不需要的可以不用添加:

```
QQ_KEY=
QQ_SECRET=
QQ_REDIRECT_URI=

BAIDU_KEY=
BAIDU_SECRET=
BAIDU_REDIRECT=

WEIBO_KEY=
WEIBO_SECRET=
WEIBO_REDIRECT=

GITHUB_KEY=
GITHUB_SECRET=
GITHUB_REDIRECT=

WECHAT_KEY=
WECHAT_SECRET=
WECHAT_REDIRECT=

```

`*_KEY` 即 `APP_KEY`,不同平台的叫法可能不同,统称应用 ID,微信公众号为 `APPID`;

`*_SECRET` 即 `SECRET`,一串随机的字符串,应用密匙,要注意该字段不能暴露给用户;

`*_REDIRECT` 即授权回调页地址,百度与微博、微信公众号可以在配置应用自行设置, QQ 貌似不支持。

以上,配置完成。

流程说明
====

[](#流程说明)

第三方登录其实就是第三方平台给你一个跳转到他们页面的链接,用户点击授权之后,第三方平台会携带一个 `code` 参数和你自定义的 `state` 字段重定向到你在应用配置的授权回调页地址,通过 `code` 换取用户的 `access_token`,再用 `access_token` 换取用户资料,最后把资料保存下来。

微信公众号登录（非微信网页扫码登录）
==================

[](#微信公众号登录非微信网页扫码登录)

微信公众号官方文档：[https://mp.weixin.qq.com/wiki?t=resource/res\_main&amp;id=mp1421140842](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842)

由于微信公众号比其他平台更复杂一点，因此在这里特别进行介绍，如果是刚入门的小白则可以快速入手。

首先需要一个公众号，个人申请的订阅号无法开通获取用户的权限，因此这个公众号必须是服务号或者是已认证的订阅号。

个人开发者或者本地测试时可以申请微信测试号，测试号可以测试公众号的各个接口，测试号申请地址：

开发过程中一般要使用测试号进行开发，测试完毕没有问题的时候，产品上线阶段再修改配置文件的 `APP_ID` 和 `SECRET`。

开发还需要下载微信 web 开发者工具，下载地址：[https://mp.weixin.qq.com/wiki?t=resource/res\_main&amp;id=mp1455784140](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140)

参照官方说明。

> 通过开发者ID及密码调用获取 access\_token 接口时，需要设置访问来源IP为白名单。

以上准备完毕。

公众号登录授权获取用户信息有两种，在传入 scope 参数时进行区分。 参照官方说明：

关于网页授权的两种scope的区别说明 以snsapi\_base为scope发起的网页授权，是用来获取进入页面的用户的openid的，并且是静默授权并自动跳转到回调页的。

用户感知的就是直接进入了回调页（往往是业务页面）

以snsapi\_userinfo为scope发起的网页授权，是用来获取用户的基本信息的。

但这种授权需要用户手动同意，并且由于用户同意过，所以无须关注，就可在授权后获取该用户的基本信息。

本插件默认使用 snsapi\_userinfo 参数。

接下来进入开发流程,首先需要在 .env 文件配置你的应用信息，接着在 routes/web.php 创建两个路由地址：

```
// 根据你实际的项目设置
Route::get('/', 'TestController@test');
Route::get('/auth', 'TestController@auth');

```

我这里使用的 /auth 即为授权回调地址，在 .env 将 WECHAT\_REDIRECT 设置为

在公众号测试号页面拉到底部，体验接口权限表下找到“网页帐号-网页授权获取用户基本信息”右侧点击“修改”。

授权回调页面域名:127.0.0.1:8000

点击确认进行保存。

创建路由对应控制器及方法：

```
