PHPstorm laravel8 微信授权登录

该代码示例展示了如何使用微信小程序的授权登录功能,通过用户code获取openid和session_key,然后检查数据库中是否存在该用户。如果存在,使用JWT生成令牌;如果不存在,则将用户信息存入数据库并生成令牌。最后,小程序端接收令牌并存储。
摘要由CSDN通过智能技术生成
这里是用小程序测试号写的示例

/**
 * 微信小程序授权登录  控制器
 */

public function login(Request $request){
    $code = $request->post("code");
    $nickname = $request->post("nickName");
    $appid = " 小程序ID ";
    $secret = " 小程序密钥 ";
    $url = "https://api.weixin.qq.com/sns/jscode2session?   appid=$appid&secret=$secret&js_code=$code&grant_type=authorization_code";
    $res = json_decode(file_get_contents($url),true);

    $info = [
        //'nickname' => $nickname,
        'openid' => $res['openid'],
        'sessionkey' => $res['session_key']
    ];
    $open = Wx::where('openid',$res['openid'])->first();
    $token = JWT::encodeJwt($open['openid']);
    if($res){
      return Apiadmin::on(['message'=>'用户已存                    在在','token'=>$token,'openid'=>$open['openid']]);
    }else{
        return Apiadmin::ok(['message'=>'用户不存在添加入库','token'=>$token,'openid'=>$open['openid']]);
        DB::table('表名')->insert($info);
    }

}

// 路由

Route::any('wxlogin',[\App\Http\Controllers\WxController::class,'login']);

//微信开发者工具

  login:function(){

    wx.getUserProfile({  

      desc: '正在授权',  

      success(res){

      let nickName=res.userInfo.nickName;  

        wx.login({  

          timeout: 1000,  

          success(ress){

          let code =ress.code  

            wx.request({  

              url: 'http:// 域名',  

              data: {code:code,nickName:nickName},  

              header: {'content-type':'application/json'},  

              method: 'post',  

              success: (result)=>{

                 console.log(result)

                let token=result.data.date.token;

                let openid=result.data.date.openid;   

              wx.setStorageSync('token',token) 

              wx.setStorageSync('openid', openid) 

                wx.showToast({  

                  title: '授权成功',  

                  icon: 'none',  

                  success: (result)=>{

            wx.navigateTo({

                    url: '/pages/show/show',

                  })

                  },  

                  fail: ()=>{},  

                  complete: ()=>{}  

                });  

              },  

              fail: ()=>{},  

              complete: ()=>{}  

            });  

          }  

        })  

      },  

      fail:function(err){

        console.log("获取失败",err)  

      }   

      })  

},

//授权登录的按钮

<view><button open-type="getUserProfile" bindtap="login">授权登录</button></view>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值