小程序与laravel笔记之用户登录token篇

小程序与laravel之用户登录token篇

后端laravel,前端采用微信小程序,关于登录模块,看文档及问度娘,加上写代码近一个周,终于搞出一点眉目。特记下来,别忘了。

环境配置

  • Laravel 8.16.1
  • 微信小程序基础库 2.14

本文注意事项

为了防止混淆。我把自己的服务器端称为laravel端。

关于Laravel Sanctum 与Possport

先看两个扩展包的介绍

Laravel Sanctum 为 SPA(Single Page Application,单页面应用)、移动 App 以及基于令牌的简单 API 提供了一个轻量级的认证系统。Sanctum 允许为应用的每个用户账户生成多个 API 令牌,这些令牌可用于授予权限/作用域来指定对应令牌允许执行的操作。

在 Laravel 中,实现基于传统表单的登陆和授权已经非常简单,但是如何满足 API 场景下的授权需求呢?在 API 场景里通常通过令牌来实现用户授权,而非维护请求之间的 Session 状态。在 Laravel 项目中使用 Passport 可以轻而易举地实现 API 授权认证,Passport 可以在几分钟之内为你的应用程序提供完整的 OAuth2 服务端实现。Passport 是基于由 Andy Millington 和 Simon Hamp 维护的 League OAuth2 server 建立的。

都挺好,但是我在Possport搞了好长一段时间,总是出问题。So~,果断转为Sanctum

关于Sanctum的安装

不多介绍,直接官方文档或学院君文档走起。

向users表中加字段

1、命令行

php artisan make:migration add_字段_to_表名_table --table=表名

2、在源码中找到\database\migrations\日期_add_表名.php

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddOpenidToUsersTable extends Migration
{
   
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
   
        Schema::table('users', function (Blueprint $table) {
   
            $table->string('openid');
            $table->string('nick_name');
            $table->string('avatar_url');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
   
        Schema::table('users', function (Blueprint $table) {
   
            //
        });
    }
}

3、运行命令

php artisan migrate

完活

关于从laravel端获取token

首先我们从微信端拿到code,把code传给laravel端,从laravel端向微信端发送获取openid的请求。

拿code

第1步,从微信端拿code,在微信小程序中进行。 我直接在utils目录下写了一个工具文件。

const wxlogin =()=>{
   
    return new Promise((resolve,rejct)=>{
   
        wx.login({
   
            timeout:10000,
            success:(result)=>{
   
                resolve(result)
            },
            fail:(error)=>{
   
                rejct(error)
            }
        })
    })
}
const wxGetUserInfo 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值