Laravel 微信小程序后端,用户登录

接上篇微信小程序后端搭建:分享: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 ()

代码已被折叠,点此展开

微信的头像 / 0
https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTf...

小头像默认 / 132
https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTf...

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

代码已被折叠,点此展开

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>
本帖已被设为精华帖!
本帖由系统于 5年前 自动加精
讨论数量: 7

file
这是怎么回事呢?

5年前 评论
jinduo (楼主) 5年前

正在学习小程序的登录授权,刚好不想使用 JWT,想使用 passport,API 部分也不想使用教程的 Dingo,版主能否把登录授权部分还有记录更新用户信息部分做个开源项目分享一下?

5年前 评论

https://gitee.com/jduo/jining
小专题的后端
file

5年前 评论
laravel_denghy 5年前
Savory 5年前
gaorenhua 5年前
lovnie 4年前
jinduo (作者) (楼主) 4年前
lovnie 4年前
chenzx
$createToken = $user->createToken($user->weapp_openid);这里为啥可以设置token呢 
5年前 评论

user.php model use HasApiTokens

5年前 评论

怎么感觉 session_key 写到数据库没什么 用

5年前 评论

提示服务器错误,怎么回事

4年前 评论