• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何使用 cookie 在 Instagram 中进行身份验证?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:48:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

所以我有我的 auth instagram 代码。 token 已提供但无法使用并显示消息“You must to switch cookies”。我必须做什么?感谢您的回答。

现在我尝试从 instagram 获取 token :

NSURL *url=[NSURL URLWithString"http://instagram.com"];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:url];
[request setHTTPMethod"GET"];
[request setHTTPShouldHandleCookies:YES];
NSData *urlData;
NSHTTPURLResponse *response;
NSError *errors;
urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&errors];

NSString *string = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern"csrf_token\":\"(.*)," options:0 error:NULL];
NSString *token = string;
NSTextCheckingResult *match = [regex firstMatchInString:token options:0 range:NSMakeRange(0, [token length])];


NSString *str = [[token substringWithRange:[match rangeAtIndex:1]] stringByReplacingOccurrencesOfString"\"}"
                                     withString""];

NSLog(@"%@", str);

NSString *post = [NSString stringWithFormat"csrfmiddlewaretoken=%@&username=%@&password=%@", str, @"nnn", @"nnnpass"];

NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

NSString *postLength = [NSString stringWithFormat"%d", [postData length]];

request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString"https://instagram.com/accounts/login/"]];
[request setHTTPMethod"OST"];
[request setHTTPShouldHandleCookies:YES];
[request setValue:postLength forHTTPHeaderField"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

urlData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&errors];

NSString *string2 = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];

NSLog(@"%@", string2);



Best Answer-推荐答案


NSDictionary *cookieProperties = [NSDictionary dictionaryWithObjectsAndKeys:
                                  @"", NSHTTPCookieDomain,
                                  @"\\", NSHTTPCookiePath,
                                  @"csrftoken", NSHTTPCookieName,
                                  @"2dfdbaaeae7752882d792e49d79c0048", NSHTTPCookieValue,
                                  nil];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
NSArray* cookieArray = [NSArray arrayWithObjects: cookie, nil];
NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookieArray];

在 POST 请求中添加: [请求 setAllHTTPHeaderFields:headers];

关于ios - 如何使用 cookie 在 Instagram 中进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23220751/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap