V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ivydom
V2EX  ›  科技

一天内完成用户管理,这个 B2B2C 电商小程序做了这些事情

  •  
  •   ivydom · 2018-06-09 16:08:58 +08:00 · 1076 次点击
    这是一个创建于 2370 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文所说的电商小程序为一个 B2B2C 在线蛋糕 DIY 平台,其主打“蛋糕在线定制”,并支持成品蛋糕的在线销售,以下简称该项目为 BC。

    作为一家初创公司,BC 团队需要快速开发出产品原型以用来验证市场需求。而任何一个产品,为了跟踪数据,必须要有一套用户系统,这里面既包括了用户的登录、注册、第三方登录、忘记密码等琐碎功能,还包括了管理员对用户信息的管理和安全认证。如果先完成这些外围业务,必然会耽误核心业务实现。为了加快系统开发速度,减少一些不必要的开发时间,BC 的创始人 Steven 选择了 Authing 云端身份认证来解决这一部分需求。

    以下是他的分享:

    1. 选择

    两个月前,我在 V2EX 上发现了 Authing 这个平台。那时,我正在构思 BC 项目,BC 这个项目有两个核心业务,一个是 B2B2C 的电商平台,另外一个是在线 DIY 蛋糕。为了能够让我们的开发人员快速进入核心业务开发,我们计划使用 Authing 处理身份认证。

    决定使用后我就联系上了 Authing 的创始人,他和我们进行了深入合作。比如 BC 客户端是在小程序上的,那时 Authing 还不支持小程序,因此我们绕道小程序,使用小程序新开放的 web-view 完成了 Authing 的接入。此外,Authing 还协助我们完成了数据库的设计,我们本地数据库只存储了用户的 authingId 和小程序传过来的用户信息。

    2. 挑战

    这一节我想多说一些技术接入上的细节,看不懂的可以直接跳到最后。

    首先从业务说起,BC 是一个 B2B2C 的平台,意味着我们至少需要三种用户身份:

    1. 买家(定制蛋糕、对蛋糕下单)
    2. 卖家(管理商品数据、接单、实行配送)
    3. 管理员(管理平台所有数据)

    而 Authing 正好可以通过创建应用隔离用户数据,因此我们在 Authing 平台上创建了三个应用,并在程序中通过判断应用 ID 实现了 BC 系统中的权限隔离(应用的 ID 会附加在登录成功后的 token 中,可直接读取)。

    此处输入图片的描述

    自此我们解决了用户身份的问题,但是现在还不能立即接入业务,我们还需要设计数据库结构。在 Authing 的协助下,我们完成了三张用户表的数据库设计:

    此处输入图片的描述 此处输入图片的描述

    可见,我们的表结构都非常简单,完成这三张表,只花了 10 分钟。

    在我们的开发团队写好了这三张表的增删查改和配置 CORS 后,我们开始正式接入 Authing。

    首先接入小程序。

    前端使用了 Authing 提供的 vue-demo 中的代码,快速完成了一个基于 web-view 的认证网页。用户在第一次访问 BC 小程序时会先跳到这个网页进行认证(用户的微信信息通过 postmessage 的方式发送到认证网页上),认证网页再将用户信息发送给 Authing 进行认证,认证通过后即跳回小程序上,然后小程序存储 Authing Token 等信息完成认证(日后的每一次请求都需要发送 Authing Token,然后后端验证该 Token 是否合法)。

    整个过程花费了前端小哥 2 个小时的时间,当我们从测试小程序登录后发现 Authing 同步增加了用户数据并能看到统计后感到非常开心。

    此处输入图片的描述 此处输入图片的描述

    然后接入商家和管理员,我们要求商家只需使用微信扫码登录。

    因为管理后台基于 Web,所以直接使用 Authing 的 JavaScript SDK 即很快完成了开发。值得一说的是,在做微信扫码登录时,我们只写了客户端的登录存储代码,整个微信 OAuth 的开发过程极其简单。

    我们仅仅在 Authing 的后台对微信的 Client ID 和 Client Secrect 和 Redirect URL 进行了配置,然后在客户端读取了“已开启”的 OAuth 服务,用户从扫码到登录成功后的任何操作,我们都不用操心!

    此处输入图片的描述

    此处输入图片的描述

    3. 投入生产环境

    很难想象,我们在一天时间内就打通了用户流程,还拥有了一整套管理用户的 GUI。第二天,我们的团队就投入到核心业务,整个过程非常顺利,两个月后我们完成了所有功能的开发、测试和运维,并将产品和 Authing 投入到了生产环境。

    虽然 Authing 帮我们分担了很多工作,但 Authing 仍有很多功能待完善。比如应该增加用户管理的 Hook 功能,假如我在 Authing 的后台删除了一个用户,那么可以触发我的一个远程 API,让我在本地数据库中也删除该用户的其它关联信息。同理,增加、修改都需要。但对于一个初创产品,Authing 确实已经很好的满足了我们的需求。

    我也看好 Authing 这种将一些基础功能基础设施化的云平台,如果追求效率,上云是个不错的选择。

    中国并没经历工业化过程,从洋务运动到苏联的工业体系引进到加入 WTO,所有这些技术变革都是上层引入带动,而不是像西方社会那样由资本家、发明家来推动社会生产关系变革。但是,在可预见的未来,随着金融、医疗和收入的提高,我看好中国社会未来的效率为主。

    slogan

    点击访问 Authing.cn qrcode

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3879 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:24 · PVG 18:24 · LAX 02:24 · JFK 05:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.