美文网首页环境集成学无止境
[第三方登录]QQ第三方登录,登录成功没有回调问题

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

作者: ZMJun | 来源:发表于2016-08-21 17:44 被阅读1067次

    版权声明:本文为博主原创文章,未经博主允许不得转载。转载请注明转至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做的不够人性化,可以借鉴微信的第三方登录方法。开发者开发到一定的高度后,就不再把一些变量保存,或者暴露在外面,所以往往容易掉入这个陷阱。

    相关文章

      网友评论

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

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