当我向后端询问带有我的用户名+密码的令牌时,它会返回:
{"token":"5KB2bTHSSLgBeZjMqvfa"}
这是我迄今为止所做的工作。我得到了令牌,它已成功保存。
- (void)requestFinished:(ASIHTTPRequest *)request
{
if ([request responseStatusCode] != 200) {
[self requestFailed:request];
}
else {
NSLog(@"%@", [request responseString]);
NSData * data = [request responseData];
NSDictionary *token = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error: nil];
// authentication successful, store token
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setValue:[token objectForKey:@"token"] forKey:@"auth_token"];
}
}
现在我想为每个下一个请求发送令牌,但我不知道如何。你能告诉我缺少什么吗?
NSURL *url = [NSURL URLWithString:@"http://localhost:3000/userDetails"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
// AUTH TOKEN?
[request startAsynchronous];
答案 0 :(得分:0)
ASI没有“auth令牌”的特殊字段。如果要将此字段添加到请求中,可以通过以下方式执行此操作:
addRequestHeader:value:
如果要将其传递给每个请求,可以考虑创建“API Manager”或仅“Authentication manager”单例类。
或许您可以将其更改为HTTP身份验证: http://allseeing-i.com/ASIHTTPRequest/How-to-use#handling_http_authentication
我还会考虑使用cookies - 如果你的后端有可能返回整个cookie对象而不是令牌。 ASI将处理会话cookie。