swift-阿里云运营商一键登录

1,786 阅读2分钟

公司决定采用阿里云进行运营商的一键登录,作为小白,就将自己的完成历程简单记录下,以免遗忘。

前期准备工作不再赘述,按照开发者文档,一步一步执行下去,help.aliyun.com/document_de…

包成功引入以后

image.png

为验证可以调用一下获取当前SDK版本号:

image.png

1、接下来就可以撸第一步咯:初始化sdk image.png oc->swift

TXCommonHandler.sharedInstance().setAuthSDKInfo(sdk, complete: { resultDic **in**
                      print("设置秘钥结果:\(resultDic)")
                })

成功的话,打印结果为:

image.png

2、此时可以视情况调用,加速授权页弹出,不调用也不影响授权页弹出。(授权页为阿里固定的样式,可以在基础上进行修改,具体可查看上方开发者文档 8.1)

image.png

3、接下来检查一下环境是否支持一键登录,

image.png oc->swift

TXCommonHandler.sharedInstance().checkEnvAvailable(with: PNSAuthType(rawValue: 2)!,
                          complete: { resultDic in
                              print("环境检查返回:\(resultDic)")
                          })

此处之所以传2,是因为

image.png

结果可能为多种,具体查看返回值

image.png

环境检查通过的话

image.png

此时授权页会成功弹起(此处为自定义过后的授权页)

image.png

4、接下来最重要的一步,获取token。

image.png

自定义样式就比较简单了,根据TXCustomModel注释,一步一步进行就好。 oc->swift

let oneBtnLoginModel = TXCustomModel()
TXCommonHandler.sharedInstance().getLoginToken(
                          withTimeout: 2.0,
                          controller: self,
                          model:self.oneBtnLoginModel,
                          complete: { resultDic in
                            let res = resultDic as! [String:Any]
                            print("res===\(res)")
                            let resultCode = res["resultCode"] as! String
                          })

注释写的很明白,根据返回值去判断触发了什么事件,以及下一步操作是否能继续。 image.png 只有点击了同意用户条款才能获取token哦! image.png 成功获取token image.png 5、此时可以找你的后端,拿着token去获取手机号码啦。

image.png

获取成功

image.png

6、登录成功后,可以注销授权页啦。 image.png

注意的几个点:

1、仅获取token,不计费。 WechatIMG331.png 2、oc-swift,本人接触ios时间不长,对于oc一无所知,方法转换花费了巨量的时间,swiftify.com/converter/c… 看名字很直观吧!没错 oc->swift,号称准确率90%。

可以用来给我这样的小白参考!注意是参考!!!不全准确的!

3、仔细看文档及注释。中间走了很多弯路,最后发现文档里面写明了,是自己过于粗心,要引以为戒。