美文网首页
手淘登录授权(非官方)

手淘登录授权(非官方)

作者: pipa | 来源:发表于2017-03-20 21:26 被阅读683次

友盟的第三放登录中并没有淘宝的授权,所以直接去阿里百川下载SDK和集成文档。

** 背景 **
公司产品需要使用手淘授权,但并不使用淘宝的商业功能。

** 必备素材 **

  • SDK。 当前最新SDK版本为AlibcTradeSDK-3.1.1.93.zip 33.5 MB
  • 安全图片。 23K

** 文档地址 **
V3.1文档

首先,推荐使用Pod的方式引入,对于已经使用pod管理第三方库的项目来说,优势很明显。
但是劣势就是集成了全家桶。而且根据文档中的方式,pod一直报错,从pod v1.0.0 ~ v1.2.0,均报错。其中有一个 search json的错误,这个应该算是 cocoapods的bug,按照pod的提示,删除就好。

但是运行 pod install 依然有错误。应该是 pod repo add AliBCSpecs http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git这个repo 的错误.

不知道为什么没有人提出这个错误。工期原因,只能放弃pod导入,手动引入framwork。

下载SDK

具体说明

  • 基础安全组件(必选)
  • UT(必选)
  • 登陆授权(必选)
  • 基础电商组件(必选)
  • mtop(必选)
  • 登陆绑定(可选)
  • applink(可选)
  • alipay:(可选)
  • 人机识别–安全(可选)
  • 优惠券(可选)
  • 一键加购(可选)

真的是全家桶...

集成

导入需要的库 和 资源

  • AlibabaAuthSDK.framework (247K)
  • AlibabaAuthSDK.bundle

需要在工程中设置 库的路径

导入头文件

#import <AlibabaAuthSDK/ALBBSDK.h>

初始化

******* 为AppKey ,从控制台查找

// ALBBSDKInit() 必须在主线程初始化
dispatch_main_asyn {
  ALBBSDK.sharedInstance().ALBBSDKInit()               
  ALBBSDK.sharedInstance().loginByURL(NSURL(string: "tbopen********"))
  ALBBSDK.sharedInstance().setAppkey("******")
  //     唤起 (客户端 & H5)授权
  ALBBSDK.sharedInstance().setAuthOption(AuthOption(rawValue: 2))

#if DEBUG
  ALBBSDK.sharedInstance().openDebugLog()
#endif
 }
            

授权

  // 获取rootViewController
  let app = UIApplication.sharedApplication().delegate
  guard let window = app?.window , let rootCtrol = window.rootViewController else {
    DDLogError("error! cannot find rootController, oauth failed")
    return
  }
        
// 调取淘宝授权
   ALBBSDK.sharedInstance().auth(rootCtrol,
                                      successCallback: { [unowned Service] (session) in
                                        Service.taobaoLoginSucess(session)
            },
                                      failureCallback: { [unowned Service](session, error) in
                                        Service.taobaoLoginError(error)
            })

处理手淘客户端回调

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url处理回调

以下是swift写法.OC 自行转换

class func handleOpenURL(url: NSURL!) -> Bool {
        let instance = Service
        var handled   = false {
            didSet {
                if handled == true {
                    DDLogVerbose("third share sdk can handel this url: \(url.scheme)")
                }
            }
        }
        ALBBSDK.sharedInstance().loginByURL(url)
        ...
}

配置 Project

参考下边图片,设置标示:

Paste_Image.png Paste_Image.png

如果环境一样的话,经过以上步骤,就可以实现淘宝登录,经测试,手淘和淘宝HD 均无异常。


补充两个错误码

  • error.code == 1003 用户取消授权 (点击手淘返回按钮,取消授权)
  • error.code == 104 用户取消授权 (点击状态栏左上角返回之前App)
  • error.code == 101 H5用户取消授权 (网页授权取消)

PS: 如果想找专门授权的文档的,还是放弃吧。

相关文章

  • 手淘登录授权(非官方)

    友盟的第三放登录中并没有淘宝的授权,所以直接去阿里百川下载SDK和集成文档。 ** 背景 **公司产品需要使用手淘...

  • 授权登录

    http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 1.用...

  • 授权登录

    getUserInfoFun: function (e) { if (e == undefined) { ...

  • 登录授权

    第三方授权流程 传统授权方式的弊端 传统授权方式,请求需要携带令牌去访问各个微服务。微服务需要请求auth服务去验...

  • 四、具体代码实现1-1

    一、登录(注销)淘宝 淘宝授权登录 注销登录

  • 百度账号授权登录

    百度账号授权登录(asp.net + angular) 相比其他授权登录,百度授权登录开发是最快的,因为审核时间可...

  • uniapp中微信授权登录

    该开始微信授权登录可以,后来又不行了,点击微信授权登录没有反应,在设置微信登录的按钮中添加 微信授权登录 监听 g...

  • 微信小程序业务篇

    问:授权怎么做? 答:需要使用 button 来授权登录 授权登录 请升级微信版本

  • 微信小程序:新登录授权的源码详解及图例

    先说明,登录是登录,授权是授权。 1、登录:通过wx.login拿到code给后台,接口返回token、openI...

  • 11.登录、认证、授权

    登录、认证、授权

网友评论

      本文标题:手淘登录授权(非官方)

      本文链接:https://www.haomeiwen.com/subject/bcbinttx.html