3 分钟,让 Laravel 接入微信小程序登陆功能
安装
composer require xiaohuilam/laravel-wxapp-login -vvv
发布
执行以下命令发布路由、controller和migrations
php artisan vendor:publish --tag=wechat-login
表结构、模型改动
laravel-wxapp-login 需要在 users
表中添加 openid
的字段,所以需要运行 database/migrations/2019_05_28_060312_users_add_openid.php
php artisan migrate
另外,需要在用户模型中,将 openid 加入到 $fillable 属性:
打开 app\User.php (如果你修改过模型位置,请以自己项目实际位置为准)
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
//... 你原先的字段
'openid',
];
}
配置
WECHAT_MINI_PROGRAM_APPID=#小程序的appid
WECHAT_MINI_PROGRAM_SECRET=#小程序的secret
在小程序JS使用
运行php artisan tinker
,然后执行 route('wechat.login')
➜ root git:(stash) php artisan tinker
Psy Shell v0.9.9 (PHP 7.3.3 — cli) by Justin Hileman
>>> route ('wechat.login')
=> "https://date.app/api/login"
>>>
得到微信登录的 api 的 URL, 调用微信登录
let url = '上面获得的url'
wx.login({
success: (res) => {
wx.request({
url: url,
method: 'POST',
data: {
code: res.code
},
headers: {
Authorization: null
},
success: (response) => {
// 这里拿到的token = response.data.token,给后面所有需要登录的api都带上 {headers: {Authorization: response.data.token}}
},
})
},
})