详解用vue.js和laravel实现微信授权登陆


Posted in Javascript onJune 23, 2017

在laravel框架我们使用安正超的package

网址:https://easywechat.org/

有专门的针对laravel的安装包,请参见如下网址:https://github.com/overtrue/laravel-wechat

下面来说说具体的安装:

1.安装package

composer require overtrue/wechat

2.在app/config/app.php 中注册 ServiceProvider

Overtrue\LaravelWechat\ServiceProvider::class,

3.创建配置文件

php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"

请修改应用根目录下的 config/wechat.php 中对应的项即可

4.添加外观到 config/app.php 中的 aliases 部分:

'wechat' => Overtrue\LaravelWechat\Facade::class,

5.添加路由

Route::any('/wechat', 'WechatController@serve');//控制器请按自己的实际情况填写

特别注意:因为laravel自带token验证,建议使用laravel-cors解决跨域问题,具体安装见github地址:https://github.com/barryvdh/laravel-cors

6.控制器添加如下代码:

/**
   * 处理微信的请求消息
   *
   * @return string
   */
  public function serve()
  {
    $wechat = app('wechat');
    $wechat->server->setMessageHandler(function($message){
      return "欢迎关注 overtrue!";
    });

    return $wechat->server->serve();
  }

7.配置好了路由和控制器,就得到了微信授权所需的URL,此时打开微信公众平台,在“开发—基本配置”页面,点击“修改配置”按钮,得到:

详解用vue.js和laravel实现微信授权登陆

修改配置页面

1) 将刚才的URL填入URL输入框内

2) token可自定义

3) EncodingAESKey 可随机生成

4) 消息加密用安全模式

8.在.env文件中配置以下参数

#微信配置,若不知道WECHAT_TOKEN和WECHAT_AES_KEY请继续往下看
WECHAT_APPID=
WECHAT_SECRET=
WECHAT_TOKEN=
WECHAT_AES_KEY=
#微信支付用
WECHAT_PAYMENT_MERCHANT_ID=
WECHAT_PAYMENT_KEY=

最后一步,填写完成后提交,微信将会调用此URL接口来验证,如果验证成功,就通过配置。

在公众平台,还有一项重要配置,如下:

在微信公众平台“接口权限”—“网页授权”—“网页授权域名”,填上服务器端域名(注:请仔细阅读平台上要求,特别注意得是,这里是服务器域名,不是客户端域名!)

接下来就可以实现微信授权登陆的功能了

10.在 app/Http/Kernel.php 中添加路由中间件:

protected $routeMiddleware = [
  // ...
  'wechat.oauth' => \Overtrue\LaravelWechat\Middleware\OAuthAuthenticate::class,
];

10.在路由中添加授权登陆的路由

Route::group(['middleware' => ['wechat.oauth']], function () {
  Route::get('/auth','UsersController@wechatAuth');
});

11.在以上路由相应的控制器中添加wechatAuth方法

public function wechatAuth(Request $request)
  {
    $userinfo = session('wechat.oauth_user')->original; // 拿到授权用户资料

    //这里写用户注册到mysql的相关逻辑代码,请自行补充

  }

12.在微信中打开此路由下的url就发现出现微信认证的界面,如未成功请自行检查你的配置和代码。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
推荐:极酷右键菜单
Nov 29 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
Apr 25 Javascript
Javascript insertAfter() 实现函数代码
Oct 12 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
Feb 04 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
Mar 04 Javascript
Extjs grid添加一个图片状态或者按钮的方法
Apr 03 Javascript
JS实现可点击展开与关闭的左侧广告代码
Sep 02 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
Mar 03 Javascript
AngularJS监听路由变化的方法
Mar 07 Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
Oct 31 Javascript
妙用Angularjs实现表格按指定列排序
Jun 23 #Javascript
VUE中v-model和v-for指令详解
Jun 23 #Javascript
JavaScript正则表达式简单实用实例
Jun 23 #Javascript
js中的事件委托或是事件代理使用详解
Jun 23 #Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 #Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 #Javascript
微信小程序组件 marquee实例详解
Jun 23 #Javascript
You might like
php实现的CSS更新类实例
2014/09/22 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
php 数组元素快速去重
2017/05/05 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
详解小程序设置缓存并且不覆盖原有数据
2019/04/15 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python发送伪造的arp请求
2014/01/09 Python
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
python概率计算器实例分析
2015/03/25 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
python使用PyQt5的简单方法
2019/02/27 Python
Python3模拟登录操作实例分析
2019/03/12 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Pytorch之Variable的用法
2019/12/31 Python
浅谈django channels 路由误导
2020/05/28 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
室内拓展活动方案
2014/02/13 职场文书
项目合作意向书范本
2014/04/01 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
感恩节寄语2015
2015/03/24 职场文书
长江七号观后感
2015/06/11 职场文书