欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-29 12:11:11
在laravel框架我们使用安正超的package 网址: 有专门的针对laravel的安装包,请参见如下网址: 下面来说说具体的安装: 1.安装package...

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

网址:

有专门的针对laravel的安装包,请参见如下网址:

下面来说说具体的安装:

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地址:

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就发现出现微信认证的界面,如未成功请自行检查你的配置和代码。

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