4.4. 微信登录功能开发

本教程最新版为 7.x,当前版本已放弃维护,请阅读最新版本!

功能开发

调整用户表结构

首先需要为 users 表增加两个字段,weixin_openidweixin_unionid, 用来记录微信用户的唯一标识。修改 password 字段为 nullable,因为第三方登录不需要密码。

$ php artisan make:migration add_weixin_openid_to_users_table

修改 migration 文件,注意替换文件名中的 your_date

databases/migrations/< your_date >_add_weixin_openid_to_users_table.php

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddWeixinOpenidToUsersTable extends Migration
{
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('weixin_openid')->unique()->nullable()->after('password');
            $table->string('weixin_unionid')->unique()->nullable()...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
Summer
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
贡献者:2
讨论数量: 43

chenshuai
获取到微信的用户信息,但缺少代码中提到的字段=>unionid?
3 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
小马哥
This action is unauthorized.?
3 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
野犭
关于 PHP 异常捕获的问题,catch 中的类应该如何选择?
2 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
阿伦
教程中用到的 Socialite 的几个方法在文档中并没有提及?
2 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
simplewater
表设计的疑问?
2 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
szlwl01
关于 Undefined index: openid 的疑问解答过程
2 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
XYLXI
关于使用 code 获取微信用户信息的疑问
2 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
gan
hehorange
为什么在只用 code 登录的时候不需要设置 openid?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
jake666
关于微信登录有这样的一个复杂的需求
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
CaiBird008
无法获得用户信息?
0 个点赞 | 18 个回复 | 问答 | 课程版本 5.5
报错:401 参数错误,未获取用户信息
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.7
hexianqi1959
在测试接口的时候遇到了错误"There is no services entry for weixin"
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.8
_杭城浪子
老师 required_without 是设么意思,网上没找到答案
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
Flourishing
这段验证我没有看懂,该怎么理解呢?老师
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
pc 网站微信扫码登录可否使用这个包?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.8
TigerLin
添加了 social_type= weixin 为什么还是返回了错误呢?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
悲剧不上演
是否需要请求资源服务器?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
ChengFu
关于 access_token 的疑问?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
MaNiu
前端获取 CODE 这部分好像没有讲到实际怎么写啊
0 个点赞 | 2 个回复 | 问答 | 课程版本 6.x
gyp719
\Socialite::driver ($type) 斜杠问题
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
phpervip
access_token 是访问哪个接口获得的呢?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
郎中航
微信登陆疑问???
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
18874127314
老师,第三方登录不是应该用 get 方法吗
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
xuhui
if ($code = $request->code) 这里一个等于号是赋值的意思吗?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
PC 端网站如何发起微信登录?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
战狼1991
使用 “授权” 码登录时如下提示:
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
18874127314
客户端应该不能传 accesstoken 吧
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
beatles
openid 的验证 rules 不应该是 required_without:code ?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
livelys
关于 $this->response () 返回的问题
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
caojianx
类的函数的参数可以直接获取路由的参数值吗?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
任飘渺
有人知道 Socialite/weixin 包文档的地址吗?
0 个点赞 | 0 个回复 | 分享 | 课程版本 6.x