注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

罔少年

QQ 332256483

 
 
 

日志

 
 

融云 swift getToken  

2015-09-11 15:53:10|  分类: ios |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
融云推荐自己建立服务端,获取token,至于什么是token,一个token对应一个用户(userId)

融云 swift getToken - 我是小黄人 - lanaiver6291的博客
 
可不可以直接在客户端根据userId获取token呢

 let parameters = [

            "userId": "wangwu",

            "name": "李四",

            "portraitUri": "http://p2.gexing.com/touxiang/20121110/1802/509e2653d4e4f_200x200_3.jpg"

        ]


        let Timestamp = String(format: "%.0f",NSDate().timeIntervalSince1970)       

        let Nonce: String = String(arc4random())

        let appSec = "uFu81cg8i6O"

        let manage = AFHTTPRequestOperationManager()

        var sha1 = appSec + Nonce + Timestamp

        sha1 = (sha1 as NSString).sha1()

        let url = "https://api.cn.ronghub.com/user/getToken.json"

        let request = NSMutableURLRequest()

      request.timeoutInterval = 6

        request.HTTPMethod = "POST"

        manage.requestSerializer.setValue("sfci50a7cplni", forHTTPHeaderField: "App-Key")

      manage.requestSerializer.setValue(Nonce, forHTTPHeaderField: "Nonce")

      manage.requestSerializer.setValue(Timestamp, forHTTPHeaderField: "Timestamp")

      manage.requestSerializer.setValue(sha1, forHTTPHeaderField: "Signature")

        manage.requestSerializer.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")

        manage.POST(url, parameters: parameters, success: { (operation, data) -> Void in

            println(data)

          let token = data["token"] as! String

            println(token)

            }) { (operation, error) -> Void in

                println(error)

        }

    }


App-Key   开发者平台分配的App Key
Nonce 随机数,无长度限制
Timestamp 时间戳,从1970年1月1日0时0分0秒开始到现在的时间
Signature 数据签名,由App-Key, Nonce, timestamp三个字符串按先后顺序拼接一起进行SHA1计算

SHA1计算方法
1、建NSString+MessageDigest.h , NSString+MessageDigest.m文件

//NSString+MessageDigest.h

#import <Foundation/Foundation.h>

@interface NSString (MessageDigest)

- (NSString *)sha1;

@end

//NSString+MessageDigest.m


#import "NSString+MessageDigest.h"

#import <CommonCrypto/CommonCrypto.h>

typedef unsigned char *(*MessageDigestFuncPtr)(const void *data, CC_LONG len, unsigned char *md);

static NSString *_getMessageDigest(NSString *string, MessageDigestFuncPtr fp, NSUInteger length)

{

    const char *cString = [string UTF8String];

    unsigned char *digest = malloc(sizeof(unsigned char) * length);

    fp(cString, (CC_LONG)strlen(cString), digest);

  NSMutableString *hash = [NSMutableString stringWithCapacity:length * 2];  

    for (int i = 0; i < length; ++i) {

        [hash appendFormat:@"%02x", digest[i]];

    }

  free(digest);

   return [hash lowercaseString];

}

@implementation NSString (MessageDigest)

- (NSString *)sha1

{

    return _getMessageDigest(self, CC_SHA1, CC_SHA1_DIGEST_LENGTH);

}

@end






  评论这张
 
阅读(1360)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017