鉴权

官方文档

用户身份鉴权(/验证)后,才有权去调用我们的接口(/云函数),才能获取到数据库里的数据;也便于用户访问记录的收集和分析。

鉴权有很多种

  • 微信授权登录
  • 匿名登录
  • 微信小程序登录
  • 自定义登录

    实现鉴权

    企业一般是微信授权登录,绑定自家用户系统。
    个人嘛,选择自定义登录授权。微信授权和小程序授权有太多手续;匿名太不安全,也费流量钱。
  • 写个登录云函数,用rsa加密,token pwt实现身份验证
import { getToken, IParams } from './services/login';
import baseModel from './models/index';
module.exports.main = async (event, context) => {
    if (!event || !event.queryStringParameters) {
        return baseModel.errorParams;
    }
    let params = {
        phone: event.queryStringParameters.phone || '',
        password: event.queryStringParameters.password || '',
    };
    console.log('params=>', params);
    if (!params.phone || !params.password) {
        return baseModel.errorParams;
    }
    let result = null;
    await getToken(params as IParams)
        .then((res) => {
            result = res;
        })
        .catch((err) => {
            result = err;
        });
    return result;
};
  • 写个发布脚本,可以快速发布
    login
  • 控制台看下函数列表,已经有了 login
  • 控制台直接提供了简单的测试工具,测试一下,ok的。 test
  • 配置下函数用http触发,设置下路由

  • 前端可以通过sdk调用、也可以用http。

数据返回的细节

  • 返回数据设计如下:
    {
      code:number
      data:object
      msg:string
    }
    
    code:标识符,成功、失败、失败类型
    data:具体业务的返回数据
    msg:字符串消息,eg:失败原因
  • 可以看到我写了个baseModel,放了最基本的返回,像参数错误、数据库错误、成功/失败封装方法等等,偷懒复用。
  • getToken方法就是service层的登录鉴权服务,根据参数返回用户的tokenticket
  • ticket生成参考官方文档
  • token生成直接用jsonwebtoken

results matching ""

    No results matching ""