[第三方登录]QQ第三方登录,登录成功没有回调问题

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明转至Z.MJun的简书


TencentOAuth这个对象必须是一个成员变量。否侧不会产生回调。

没有回调的做法
方法名称

{
    TencentOAuth *oauth = [[TencentOAuth alloc] initWithAppId:appId andDelegate:self];
    [oauth setRedirectURI:uri];
    [oauth authorize:@[kOPEN_PERMISSION_GET_USER_INFO] inSafari:NO];
}

错误的在于,oauth这个变量只在这个作用区域内有效。跳出这个作用区域就被释释放了,等到回调的时候当然就找不到这个变量。

有回调的做法

@interface ClassName () <TencentSessionDelegate>
{
    TencentOAuth *_oauth;
}

这样子,在经过初始化后,变量被保存,等到登录成功回调就有了数据了。

个人认为
这个样的调用是腾讯QQ登录的API做的不够人性化,可以借鉴微信的第三方登录方法。开发者开发到一定的高度后,就不再把一些变量保存,或者暴露在外面,所以往往容易掉入这个陷阱。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容