前后端分离:开发效率高,没有SEO

现在是重客户端设计:交互和业务逻辑是前端来写,适合做前后端分离。对前端更友好,提高了效率。

传统模式开发:整个业务逻辑是server端写,不适合做前后端分离。server端渲染的方式,鉴权更好做。

传统开发好处:1、统一鉴权,做到拦截层,也可以说在页面级别。在访问一个页面前,就直接引导到登录页面去。而前后端分离后,只能以ajax做判断。

       2、对SEO更加友好。

         3、对server端的统计,乃至  开课太客厅(音译),server端的控制力更强一点。

webview中的鉴权和传统网页中保持一致,ajax做判断。前端目前通用的权限标志用cookie,hybrid比较成熟的方案依旧是注入cookie。 登录由Native发起,cookie也由Native注入。

比较好的做法(不会混乱):

Native本身会维护一个登录态,Native打开一个H5页面的时候,他发现自己有登录态,他就会把cookie注入进去。在H5页面访问到具体的业务逻辑,如果页面需要登录的话,就会弹出一个Native的登录框或者弹出公共的登录页面。登录成功以后会把登录态写到Native里面,由Native再去打开一个H5页面,如有登录态就注入进去给webview。这就是一个单向的业务流程。这样就很好管理。

H5只有请求的时候有鉴权的问题,H5完全不管登录信息,所有登录方面的业务由Native维护。我们发出去的请求其实是一个被Native拦截的请求,它会取到这个url,再由Native把请求发出去,然后再响应回调。这样做的好处:1、我们有很多公共的参数,比如设备号或者屏幕等信息。对Native来说,拿信息更好拿。2、Native发出请求比H5效率更高。

这样做的话会让H5依赖Native或服务端,这样开发效率就很低。但是如果有办法抹平浏览器ajax发出请求和Native发起的请求的差异的话这个还是个不错的方案。抹平就是在H5中也能开发,Native中也能开发。

推荐使用cookie的方式,也比较通用。

收口在升级就是公共业务。

在统一的规范下开发的公共业务,会大大提升工作效率。上图当中的返回、button等都是可以控制的。

登录页面完善的可以做几套:账号登录、短信登录、二维码登录、第三方登录。登陆页面做好以后,甚至钱包页面也这样做好以后,开发效率会很高。

做项目时:把公共的代码做一个收口,公共业务要有公共业务的页面,公共业务要生成页面,可以复用。例如点击Button跳转到Native页面。

这里主要说明登录体系或者鉴权做了一些说明。

以登录为例:

上面代码会获取到successurl(注释部分),这个url存给location,因为Native体系打通了,他就会跳到Native页面里去。

Hybrid设计--账号体系的建设的更多相关文章

  1. Hybrid设计--如何落地一个Hybrid项目

    前后分离  ->  统一前端框架 -> 同一个账号体系  ->  登录注册的公共页 ->  有了这些公共业务后 推行 -> Hybrid 技术 底层容器开发出来后 -&g ...

  2. atitit.提升2--3倍开发效率--cbb体系的建设..

    atitit.提升开发效率--cbb体系的建设.. #--提升倍数,大概2--3倍.. #---cbb的内容 知识的,expt的,经验的技术的部件的问题库的角度.. #---cbb的层次,tech l ...

  3. VI设计对于企业文化建设的重要性

    VI设计对于企业文化建设非常重要,包括企业品牌形象塑造.企业价值提炼.企业文化建设等有着非常重要的作用.VI设计的发展趋势是什么? 第一 从静态到动态 中国过去一段时间以来的VI设计,也是以一种静止和 ...

  4. 微信支付v2开发(2) 微信支付账号体系

    本文介绍微信支付账号体系各参数. 商户在微信公众平台提交申请资料以及银行账户资料,资料审核通过并签约后,可以获得表6-4所示帐户(包含财付通的相关支付资金账户),用于公众帐号支付. 帐号 作用 app ...

  5. Hybrid设计--核心交互

    普通网页中跳转使用a标签,这里我们要对跳转进行更多的干预,所以将全站的跳转收口到框架层,用forward去实现.拒绝用a和window.location.如果我想对所有跳转做一个处理,开动画或者对跳转 ...

  6. Hybrid设计--H5和Native,收口

    Native提供容器,不要涉及太多的业务,否则就失去了通用性. H5和Native的差异是短时间内解决不了的,React Native 超越Hydrid跨平台解决方案. 前端和 Native约定了一个 ...

  7. 第三方支付设计——账户体系

    第三方支付架构设计之-帐户体系 一,      什么是第三方支付?         什么是第三方支付?相信很多人对这个名字很熟悉,不管是从各种媒体等都经常听到,可以说是耳熟能熟.但,如果非得给这个名词 ...

  8. Hybrid设计--Hybrid中Native能力的设计

    稍微成熟的团队,header一定是不利于业务的UI组件,这个组件会封装在view层,方便前端使用.对业务前端开发来说,不用关注header是如何实现的,只用框架层释放的API.(一个前端有一个自己的U ...

  9. Hybrid设计--离线更新

    首先server端和前端做一个增量发布系统 ,1.就是把一个增量包发布到一个版本的Native上去,让他做更新.2.后台对这个增量包的到达率或者成功的更新做一个统计.这是比较复杂的. 离线更新的机制: ...

随机推荐

  1. db2 表空间扩容

    DB2表空间扩容 1 - Detect what tablespace has size issues db2 list tablespaces show detail 2 - Check the p ...

  2. 对Entity Framework Core的一次误会:实体状态不跟踪

    在 Entity Framework 中,当通过 EF 使用 LINQ 查询获取到一个实体(实际得到的是 EF 动态生成的实体类的代理类的实例)时,这个实体的状态默认是被跟踪的.所以,当你修改实体的某 ...

  3. python web篇 Django centos 命令版

    新建立一个虚拟环境,与其他python 包隔开互不影响 首先新建立一个目录,命名为xx, python3 下操作 $:python -m venv ll_env 注意在有多个Python环境下,使用 ...

  4. ubuntu系统中java -version所显示的版本与/etc/profile中配置的$JAVA_HOME的关系

    问题产生 ubuntu 18.04环境下,执行 java -version 发现与/etc/profile中的$JAVA_HOME所设置的java版本不同. 推测原因 最近用apt install 安 ...

  5. [No000016C]做企业分析的三个重要工具

    个工具>这本书,内容很基础,但是逻辑很清晰.里面介绍了三个常用的分析方法:pest分析法.波特五力模型以及swot分析法,为脑袋里没有分析思路的人提供了分析框架. 故将这三个分析方法做成了思维导 ...

  6. Spring 嵌套方法AOP不生效问题

    问题描述, 如下Abc定义为一个Bean, b()方法添加@TargetDatasource,定义切面DynamicDataSourceAspect,期望:调用a()方法,b()方法上的AOP拦截能生 ...

  7. 从一个点的长度是多少说起(Talking started from the length of a point on the real number line)

    From the perspective of analytical geometry, an interval is composed of infinitely many points, whil ...

  8. 闭区间套定理(Nested intervals theorem)讲解2

    ①确界与极限,看完这篇你才能明白 http://www.cnblogs.com/iMath/p/6265001.html ②这个批注由这个问题而来 表示$c$可能在$\bigcap_{n=1}^{\i ...

  9. winform excel导入--自带office.interop.excel方式

    用npoi方式,遇到一个问题,有的excel用加密软件(盖章,只读等)生成的解析不了,所以换成自带的方式,可以解决. 需要引用系统自带Microsoft.office.interop.excel pu ...

  10. iOS-原生纯代码约束总结(一)之 AutoresizingMask

    一,概述 iOS有两大自动布局利器:autoresizing 和 autolayout(autolayout是IOS6以后新增).autoresizing是UIView的属性,一直存在,使用也比较简单 ...