zoukankan      html  css  js  c++  java
  • ios下新浪腾讯oauth认证对比

      现在大家一般都用oauthconsumer进行oauth认证,但是如果不修改一点什么的话,新浪跟腾讯的oauth认证都不能用它完成.

    对于新浪来说,修改的地方就是mutableurlrequest.m中添加

    for (NSString *parameterName in [[extraOAuthParameters allKeys] sortedArrayUsingSelector:@selector(compare:)]) {
            [parameterPairs addObject:[[OARequestParameter requestParameterWithName:parameterName
                value:[extraOAuthParameters objectForKey:parameterName]] URLEncodedNameValuePair]];
        }
    

    因为consumer的是1.0,而新浪的是1.0a,要求各参数都参与加密运算,然后在需要附加额外参数的地方添加就行了:

    OAMutableURLRequest *request;
    [request setParameters:[NSArray arrayWithObjects:[[OARequestParameter alloc] initWithName:
    @"page" value:@"0"],nil]];

    1,新浪是鼓励在header中添加所需参数的,放在url中不行  腾讯是暂时不支持header方式传参的,必须接在url后面

    2,两者都需要一个auth_verifier,其中腾讯的第一步更必须一个callback参数,手机端开发此指为null

    3,腾讯的一个陷进是,官方说是32位,其实再看看官方提供的demo:

    - (NSString *)generateNonce {

    // Just a simple implementation of a random number between 123400 and 9999999
    return [NSString stringWithFormat:@"%u", arc4random() % (9999999 - 123400) + 123400];
    }

    sina的得到32位的函数是

    - (NSString *)generateNonce
    {
    CFUUIDRef theUUID
    = CFUUIDCreate(NULL);
    CFStringRef
    string = CFUUIDCreateString(NULL, theUUID);
    NSMakeCollectable(theUUID);
    return (NSString *)string;
    }

    伤得起么?

    主要就是这几点的不同了.

    研究下官方提供的网友的demo,对比看看这个库,很容易明白.

    附:获取qq收藏列表api更正

    3.fav/list_t 收藏的微博列表
    
    fav/list_t 收藏的微博列表
     
    URL:http://open.t.qq.com/api/fav/list_t
    格式:xml,json 
    HTTP请求方式:GET
    是否需要鉴权:true
    请求数限制:true 
    关于请求数限制,参见接口访问权限说明
     
    请求参数:oauth标准参数,并带上以下参数
    Format:返回数据的格式 是(json或xml)
    Pageflag:分页标识(0:第一页,1:向下翻页,2向上翻页)
    nextTime: 向下翻页起始时间(第一页 时填0,继续翻页:填上一次请求返回的nexttime时间,)
    Prevtime: 向下翻,上一次请求返回的prevtime事件
    Reqnum:每次请求记录的条数(1-20条)
    Lastid:第一页 时填0,继续向下翻页,填上一次请求返回的最后一条记录ID,翻页用
    // 下面这个添加上
    pagetime:向下翻页填上上一次请求返回的nexttime
                   向上翻页填上上一次请求返回的prevtime
    

      

  • 相关阅读:
    Jumpserver之安装在CentOS主机步骤
    Nginx负载均衡后端健康检查(支持HTTP和TCP)
    Nginx负载均衡后端健康检查
    ELK之使用packetbeat分析网络包流量
    ELK之使用heartbeat监控WEB站点
    ELK之elasticsearch导致CPU居高不下系统慢解决办法
    Saltstack如何修改主机名或者minion id
    mac中使用 sourcetree 的快速配置和git服务器登录
    [转]从三层架构迈向领域驱动设计 — 关于领域设计中描述相对简要及明了的一篇文章
    io-nio 区别示意图
  • 原文地址:https://www.cnblogs.com/v2m_/p/2051265.html
Copyright © 2011-2022 走看看