接上篇微信小程序后端搭建:分享:Laravel 微信小程序后端搭建
后端搭建好后第一件事就是用户登录认证,简单实现微信小程序登录认证
1.user 模型
use Laravel\Passport\HasApiTokens; 新增
use HasApiTokens, Notifiable; protected $fillable = [ 'id', 'name', 'email', 'email_verified_at', 'username', 'phone', 'avatar',//我用来把微信头像的/0清晰图片,存到又拍云上 'weapp_openid', 'nickname', 'weapp_avatar', 'country', 'province', 'city', 'language', 'location', 'gender', 'level',//用户等级 'is_admin',//is管理员 ];
2. 新增一条路由
//前端小程序拿到的地址:https://域名/api/v1/自己写的接口 Route::group(['prefix' => '/v1'], function () { Route::post('/user/login', 'UserController@weappLogin'); });
3. 在 UserController 控制器里新建 function weappLogin (),别忘了 use 这些
use App\User; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage;
写两个 function weappLogin (),avatarUpyun ()
public function weappLogin(Request $request) { $code = $request->code; // 根据 code 获取微信 openid 和 session_key $miniProgram = \EasyWeChat::miniProgram(); $data = $miniProgram->auth->session($code); if (isset($data['errcode'])) { return $this->response->errorUnauthorized('code已过期或不正确'); } $weappOpenid = $data['openid']; $weixinSessionKey = $data['session_key']; $nickname = $request->nickname; $avatar = str_replace('/132', '/0', $request->avatar);//拿到分辨率高点的头像 $country = $request->country"Bearer", 'expires_in' => Carbon::now()->addDays(30), 'data' => $user, ], 200); } //我保存到又拍云了,版权归腾讯所有。。。头条闹的 private function avatarUpyun($avatar) { $avatarfile = file_get_contents($avatar); $filename = 'avatars/' . uniqid() . '.png';//微信的头像链接我也不知道怎么获取后缀,直接保存成png的了 Storage::disk('upyun')->write($filename, $avatarfile); $wexinavatar = config('filesystems.disks.upyun.protocol') . '://' . config('filesystems.disks.upyun.domain') . '/' . $filename; return $wexinavatar;//返回链接地址 }
微信的头像 / 0
小头像默认 / 132
4. 后端上面就写好了,再看下小程序端怎么做的哈,打开小程序的 app.json,添加 "pages/auth/auth",
{ "pages": [ "pages/index/index", "pages/auth/auth",//做一个登录页面 "pages/logs/logs" ], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle": "black" }, "sitemapLocation": "sitemap.json", "permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序位置接口的效果展示" } } }
5. 打开 auth.js
const app = getApp(); Page({ /** * 页面的初始数据 */ data: { UserData: [], isClick: false, }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { }, login: function(e) { let that=this that.setData({ isClick: true }) wx.getUserInfo({ lang: "zh_CN", success: response => { wx.login({ success: res => { let data = { code:res.code, nickname: response.userInfo.nickName, avatar: response.userInfo.avatarUrl, country: response.userInfo.country "color: #ff0000">6. 打开 auth.wxml<view class='padding-xl'> <button class='cu-btn margin-top bg-green shadow lg block' open-type="getUserInfo" bindgetuserinfo="login" disabled="{{isClick}}" type='success'> <text wx:if="{{isClick}}" class='cuIcon-loading2 iconfont-spin'></text> 微信登录</button> </view>以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]
- 永恒英文金曲精选4《TheBestOfEverlastingFavouritesVol.4》[WAV+CUE]
- 群星《国风超有戏 第9期》[320K/MP3][13.63MB]
- 群星《国风超有戏 第9期》[FLAC/分轨][72.56MB]