前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 使用BGFMDB存储信息到本地数据库教程【应用场景:商户首次登陆同意协议流程】

iOS 使用BGFMDB存储信息到本地数据库教程【应用场景:商户首次登陆同意协议流程】

作者头像
公众号iOS逆向
发布2021-07-05 20:48:39
9140
发布2021-07-05 20:48:39
举报
文章被收录于专栏:iOS逆向与安全
  • 1.1 存储流程
  • 1.2 数据模型

前言

本文例子:商户首次登陆app同意协议流程

需求背景

是否同意协议根据商户进行区分,不是根据设备。用户同意协议之后,需同步信息到服务端。同步的信息必须携带token 如果用户首次登陆,强制修改密码,此时登陆接口没有返回token

  • 问题

商户首次登陆同意协议之后,没有返回token,此时无法同步更新协议信息UpdateIsAgreeMent

  • 方案:记录当前商户已经同意过协议动作,等首次登陆修改完密码得到token之后在进行同步

原文地址

https://kunnan.blog.csdn.net/article/details/112533687

iOS App登录流程优化:如果 token不过期,就使用最近一次登录的token【修订版】

I、记录当前商户已经同意过协议信息

  • 第三方库

pod 'BGFMDB', '~> 2.0.13' #2.0.9

1.1 存储流程

  • 定义存储信息的表名
代码语言:javascript
复制

/**
 存储是否同意协议信息:根据商户手机号进行存储,主要用于首次登陆
 
 */
NSString * const QCTTableName4isAgreeMent=@"x x x x x x";

  • 新增存储信息的模型isAgreeMentM
代码语言:javascript
复制
@interface isAgreeMentM : NSObject
@property (nonatomic,copy) NSString *loginAccount;


@end

  • 记录当前商户已经同意过协议信息
代码语言:javascript
复制
// 20210112 如果是首次登陆则没有token,就不请求更新协议接口。并记录当前商户已经同意过协议
    
    if( [NSStringQCTtoll isBlankString: [UserInfoModel shareUserInfoModel].BearerToken]){
        
        // 记录当前商户已经同意过协议
        
        CRMisAgreeMentM *isAgreeMentM =[CRMisAgreeMentM new];
        // 获取最近一次登陆的手机号码
        isAgreeMentM.loginAccount = QCTSession.shareQCTSession.tmpLoginAccount;
        [CRMisAgreeMentM saveModelWithModel:isAgreeMentM];
        
        return ;
    }
    

  • 登陆成功之后,根据本地存储的信息和接口返回的数据进行判断当前商户是否同意协议
代码语言:javascript
复制
                       // 根据本地数据判断商户是否首次登陆就已经同意同意协议
                        
                        // 根据登陆账号查询本地数据
                        
                        isAgreeMentM *tmpisAgreeMentM = [isAgreeMentM  getmodelWithloginAccount:QCTSession.shareQCTSession.tmpLoginAccount];
                        
                        if([NSStringQCTtoll isBlankString:tmpisAgreeMentM.loginAccount]){
                            
                            
                          //如果当前商户返回的接口数据和本地数据的都没同意过协议的额数据,就同意协议视图
                            [self serviceAgreementUpdateIsAgreeMentBool:YES  WithDict:responseObj[@"data"]];

                        }else{// 直接进入首页,并异步同步同意协议信息到服务端
                        
                        }
                        
                        

1.2 数据模型

  • h
代码语言:javascript
复制
@interface isAgreeMentM : NSObject
@property (nonatomic,copy) NSString *loginAccount;

/**
 存储
 */
+ (void)saveModelWithModel:(isAgreeMentM*)userModel;
/**
 查询
 */
+ (instancetype)getmodelWithloginAccount:(NSString*)loginAccount;

@end

  • m
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • iOS App登录流程优化:如果 token不过期,就使用最近一次登录的token【修订版】
  • I、记录当前商户已经同意过协议信息
    • 1.1 存储流程
      • 1.2 数据模型
      相关产品与服务
      对象存储
      对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档