Laravel 社会化登录之微信网页授权登录
微信网页授权登录
前言----
Laravel 社会化登录中,微信网页授权登录是其中一个重要的功能。通过微信网页授权登录,用户可以使用微信账号快速登录到你的应用程序中。
本文将详细描述如何实现微信网页授权登录,包括前端和后端的配置,以及如何获取用户的微信信息。
前端配置
在前端,需要配置微信的 JS SDK 以便于获取 code 和 openid。以下是步骤:
1. 引入微信 JS SDK
```html
```
2. 初始化微信 JS SDK
```javascriptwx.config({
debug: true, // 开启调试模式,调用的JS接口会弹出一个对话框,若要关闭,则将appID替换为真实的appid,上线前一定要记得改回真实的appid,不然有安全风险。
appId: '你的APPID', // 必填,公众号的唯一标识 timestamp:2, // 必填,生成签名的时间戳 nonceStr: 'your_nounce_str', // 必填,生成签名所用的随机数 signature: 'your_signature', // 必填,签名,见上文提到的计算方法 jsApiList: ['checkJsApi','chooseWXApp'] // 必填,需要使用的JS接口列表});
```
3. 获取 code
```javascriptwx.chooseWXApp({
success: function () {
var code = wx.getStorageSync('code');
if (code) {
// 将 code 返回给后端进行授权 }
},
fail: function (res) {
console.log(res);
}
});
```
后端配置
在后端,需要接收前端传来的 code 并进行微信网页授权登录。以下是步骤:
1. 创建一个新的 Laravel 应用程序
```bashcomposer create-project --prefer-dist laravel/laravel wechat-login```
2. 安装微信 SDK
```bashcomposer require mp.weixin.qq.com/weixin-sdk```
3. 配置微信 SDK
```php// config/services.php'services' => [
'wechat' => [
'app_id' => env('WECHAT_APP_ID'),
'secret' => env('WECHAT_SECRET'),
],
],
```
4. 创建一个新的控制器
```bashphp artisan make:controller WechatController```
5. 在控制器中接收 code 并进行授权登录
```php// app/Http/Controllers/WechatController.phpnamespace AppHttpControllers;
use IlluminateHttpRequest;
use MpWeixinWeixin;
class WechatController extends Controller{
public function login(Request $request)
{
$code = $request->input('code');
$openid = Weixin::getOpenid($code);
// 进行授权登录 return redirect()->intended('/home');
}
}
```
6. 配置路由
```php// routes/web.phpRoute::post('/wechat/login', 'WechatController@login')->name('wechat.login');
```
获取用户的微信信息
在前端,需要使用微信 JS SDK 来获取用户的微信信息。以下是步骤:
1. 初始化微信 JS SDK
```javascriptwx.config({
// ...
});
```
2. 获取用户的微信信息
```javascriptwx.getUserInfo({
success: function (res) {
var openid = res.userInfo.openid;
var nickname = res.userInfo.nickname;
var avatarUrl = res.userInfo.avatarUrl;
// 使用openid、nickname和avatarUrl来进行授权登录 },
fail: function (res) {
console.log(res);
}
});
```
总结
微信网页授权登录是 Laravel 社会化登录中一个重要的功能。通过前端和后端的配置,以及如何获取用户的微信信息,开发者可以轻松实现微信网页授权登录。