详解用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 相关文章推荐
JavaScript中令你抓狂的魔术变量
Nov 30 Javascript
统计出现最多的字符次数的js代码
Dec 03 Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
登陆成功后自动计算秒数执行跳转
Jan 23 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
May 19 Javascript
jQuery 删除或是清空某个HTML元素示例
Aug 04 Javascript
JavaScript中的null和undefined区别介绍
Jan 01 Javascript
微信小程序 http请求详细介绍
Oct 09 Javascript
Vue中computed与methods的区别详解
Mar 24 Javascript
angularJs在多个控制器中共享服务数据的方法
Sep 30 Javascript
解决element-ui的下拉框有值却无法选中的情况
Nov 07 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 minixml详解
2008/07/19 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP内存使用情况如何获取
2015/10/10 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
JavaScript函数、方法、对象代码
2008/10/29 Javascript
js 获取浏览器高度和宽度值(多浏览器)
2009/09/02 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
js中this对象用法分析
2018/01/05 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
2019/05/07 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
python之Socket网络编程详解
2016/09/29 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
Python JSON编解码方式原理详解
2020/01/20 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
Holiday Inn中国官网:IHG旗下假日酒店预订
2018/04/08 全球购物
中专生职业生涯规划书范文
2013/12/29 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
护理中职生求职信范文
2014/02/24 职场文书
委托书范文
2014/04/02 职场文书
心得体会的写法
2014/09/05 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
如何在Python项目中引入日志
2021/05/31 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python