一天内完成用户管理,这个 B2B2C 电商小程序做了这些事情 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ivydom
V2EX    科技

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

  •  
  •   ivydom 2018 年 6 月 9 日 1392 次点击
    这是一个创建于 2796 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文所说的电商小程序为一个 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     Solana     4441 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 45ms UTC 07:17 PVG 15:17 LAX 23:17 JFK 02:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86