阿里百川授权

最近阿里百川SDK升级,授权方式大改,以前的授权服务直接停了,导致未授权的 一直授权不成功,作为一个以前从来没有使用过阿里百川的小白,大致的总结了一下处理步骤

一、以前的授权方式是:H5授权方式

image.png

大致说下步骤 :就是客户端需要自己组装URL ,这个URL需要包含淘宝授权后的域名 组装完了后 通过 code 服务端去换 token 然后服务端回调我们是否授权成功

二、现在的方式:通过 authorize4AppKey 方法后就可以了

image.png

阿里百川文档中 只说了 使用 authorize4AppKey 这个方法可以进行新的授权 ,但是找遍了所有地方 ,没有任何地方有相关的使用说明,demo里也完全没有相关信息

其他的地方 基本和之前的一致

三、新的授权方式步骤

  1. 更新最新的SDK 文档地址:
    https://aff-open.taobao.com/#!/document

    image.png

  2. 修改至工程没有问题

  3. 找到以前工程的授权的地方 openTradeUrl
    、、、
    /// 绑定
    /// - Parameters:
    /// - url: 授权链接
    /// - parentController: 父视图
    func bind(url: String,
    parentController: UIViewController) {
    let showParam = AlibcTradeShowParams()
    showParam.isNeedOpenByAliApp = true
    showParam.isPushBCWebView = false
    showParam.failMode = self.configuration?.failedMode ?? .aliAppDownloadPage

     let taokeParam = AlibcTradeTaokeParams()
     taokeParam.pid = self.configuration?.pid
      AlibcTradeUltimateSDK.sharedInstance().tradeService().openTradeUrl(url, parentController: parentController, showParams: showParam, taoKeParams: taokeParam, trackParam: nil) { error,result in
         if let error = error {
             self.configuration?.bindFailed( error: error)
         }
     }
    

    }
    、、、

这个方法替换成新的方法
、、、
func startAuth(parentController: UIViewController,completion: @escaping (Bool) -> Void) {
self.logout()
self.loginAuth(parentController: parentController) {
AlibcTradeUltimateSDK.sharedInstance().tradeService().authorize4AppKey("和后端保持一致使用的APPKey", appName: nil, appLogo: nil, currentVC: parentController) { error, accessToken, expire in
if let accessTokenNew = accessToken,accessTokenNew.count > 0{
CPSJump.updateTaoBaoaAcessToken(accessToken: accessTokenNew) { isSuccess in
completion(isSuccess)
}
}else{
self.configuration?.bindFailed( error: error)
completion(false)
}
}
}
}

/// 登录
func loginAuth(parentController: UIViewController,
success: @escaping SuccessHandler) {
if self.isLogin() {
success()
} else {
AlibcTradeUltimateSDK.sharedInstance().loginService().setH5Only(false)
AlibcTradeUltimateSDK.sharedInstance().loginService().auth(parentController) { _ in
success()
} failure: { (error) in
/// 登录失败
self.configuration?.loginFailed( error: error)
}
}
}

/// 退出
func logout() {
AlibcTradeUltimateSDK.sharedInstance().loginService().logout()
}
、、、

这个地方需要注意 在授权之前需要 logout() ,不然用户有多个淘宝账号 ,如果有的淘宝号不能授权,会出现使.authorize4AppKey 授权的时候 如果我APP不登出 第一次使用可以授权的淘宝账号进行授权 然后解绑 并且把淘宝账号换成不可以授权的淘宝账号 这个时候调用 authorize4AppKey 返回我这边accessToken 还是上一个的

  1. 我们APP端通过 authorize4AppKey 获得了accessToken 后 ,这个时候需要后端配合处理,需要新加一个接口,我们把accessToken 传给服务端 服务端 不用拿code 换token 然后授权 ,现在就可以用我们获得的 accessToken 直接去淘宝授权 然后返回客户端结果 ,客户端保持返回的信息然后 刷新数据 继续做之前要走的步骤就可以了

总结:
总的来说 ,此次的升级 ,中间确实方便了不少 ,唯一不足就是文档资料太少 希望百川文档资料实时更新 demo实时更新 方法使用步骤可以简单易懂点

你可能感兴趣的:(阿里百川授权)