- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 iOS 的新手,正在开发一个基本的应用程序,它目前正在使用 SSKeychain
和 AFNetworking
与 API 进行交互。当您使用我检索的应用程序登录并在我的 CredentialStore 类中设置 auth_token 时,我需要将 auth token 作为 http header 发送到 API 以获得访问权限。如何检索存储在 HomeViewController 的 CredentialStore 类中的 token 。
这是我的 CredentialStore:
#import "GFCredentialStore.h"
#import "SSKeychain.h"
#define SERVICE_NAME @"Groupify"
#define AUTH_TOKEN_KEY @"auth_token"
@implementation GFCredentialStore : NSObject
- (BOOL)isLoggedIn {
return [self authToken] != nil;
}
- (void)clearSavedCredentials {
[self setAuthToken:nil];
}
- (NSString *)authToken {
return [self secureValueForKey:AUTH_TOKEN_KEY];
}
- (void)setAuthToken:(NSString *)authToken {
[self setSecureValue:authToken forKey:AUTH_TOKEN_KEY];
[[NSNotificationCenter defaultCenter] postNotificationName:@"token-changed" object:self];
}
- (void)setSecureValue:(NSString *)value forKey:(NSString *)key {
if (value) {
[SSKeychain setPassword:value
forService:SERVICE_NAME
account:key];
} else {
[SSKeychain deletePasswordForService:SERVICE_NAME account:key];
}
}
- (NSString *)secureValueForKey:(NSString *)key {
return [SSKeychain passwordForService:SERVICE_NAME account:key];
}
@end
这里我尝试检索 authToken 值并将其设置为字符串,以便我可以将其作为 http header 发送:
#import "GFHomeViewController.h"
#import <AFNetworking.h>
#import "GFCredentialStore.h"
#define kBaseURL "http://localhost:3000/"
#define kHomeURL "newsfeed.json"
@interface GFHomeViewController ()
@end
@implementation GFHomeViewController
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
__weak typeof(self)weakSelf = self;
NSString *urlString = [NSString stringWithFormat:@"%s%s", kBaseURL, kHomeURL];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue: forHTTPHeaderField:@"auth_token"];
[manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
}
最佳答案
假设 SSKeychain
正在保存钥匙串(keychain)并向/从钥匙串(keychain)返回值,我认为您可以简单地执行类似的操作
GFCredentialStore *credentialStore = [[CGCredentialStore alloc] init];
if ([credentialStore isLoggedIn]) {
NSString *authToken = [credentialStore authToken];
[manager.requestSerializer setValue:authToken forHTTPHeaderField:@"auth_token"];
} else {
// prompt/display controller for login
}
如果我遗漏了您遇到的问题/问题中的某些内容,请澄清您的问题,我会再次尝试解决。
关于iOS 检索 valueForKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22724954/
愚蠢的问题警告......我可能会被剥夺 sleep ,但我似乎无法弄清楚这一点。 'current' 是一个 NSDictionary if ([current valueForKey:@"name
在我的应用程序中有一个名为“selectedItems”的 NSDictionary,它包含键“Order”。该值可以由用户更改。NSDictionary lokks 的定义如下: self.sele
我是 iOS 的新手,正在开发一个基本的应用程序,它目前正在使用 SSKeychain 和 AFNetworking 与 API 进行交互。当您使用我检索的应用程序登录并在我的 CredentialS
我正在使用 NSDictionary 来存储一组值,并且我正在尝试将它们分配给一个 double 值。但是我不确定该怎么做,valueforkey 返回一个 id,它是一个指针。我曾尝试使用“*”获取
NSDictionary *topic = [spaces objectAtIndex:i]; NSInteger topicid = [topic valueForKey:@"TOPICID
我有一个我想要一个值的 NSArray。 _membersArray = [_detailItem valueForKey:@"members"]; 当我使用此代码时: NSLog(@"%lu", (
我有两个从实体派生的NSManagedObject子类ActivityMember和Member。成员具有一个称为名称的属性,而 Activity 成员通过与成员一对一的关系具有一个称为成员的属性。我
我偶尔会遇到这种崩溃,这很难重现: 0 CoreFoundation 0x39ff73e2 __exceptionPreprocess + 158 1 lib
如何从下面的 NSMutableArray 数组中检索键值。以下代码在 isEqualToString 上崩溃。但是,在运行该语句之前,我可以在变量 View 窗口中看到 nsRet 的值为 @\x1
我是 IOS 编程的新手,正在尝试修改开发人员为我编写的一些代码。我在以下代码中遇到问题 NSUserDefaults *pref=[NSUserDefaults standardUserDefaul
我有一些代码从 plist 中提取数据: myImage.image = [UIImage imageNamed:[[myArray1 objectAtIndex:indexValue] valueF
我正在尝试使用字符串(“levelNumberString”)作为 NSDictionary 中的 valueForKey。当我使用像 @"1" 这样的字符串时,它一切正常,但是当我决定将那种字符串换
在 Objective-C 中,如果我有一个对象数组,并且每个对象都有一个 id 键,如下所示: NSArray *array = @[@{@"id":@(1), @"name":@"Bob"}, @
我还有一个关于检查 valueForKey 是否存在的问题。这是我的代码: id _jsonId = [NSJSONSerialization JSONObjectWithData:[_json da
我无法理解为什么我的有序集只保存了 1 个条目。 我的代码如下: let newInovice = NSEntityDescription.insertNewObjectForEntityForNam
我想在一个简单的游戏中保存高分。我是 swift 2 的新手,不确定我做错了什么。我收到错误消息“‘int’类型的值没有‘valueForKey’的成员。这是我上次尝试失败时的代码。 var high
我有一个简单的类 User。当我尝试调用 valueForKey 时,其中键是可选值,我收到错误消息。见下文: class User : NSObject{ var name = "Greg"
我有一个 NSMutableDictionary,其键是对象名称的第一个字母。该 View 类似于 iPhone 上的“联系人”选项卡。此外,用户可以选择列表中的单个对象。 在代码中,我找到每个选定的
我正在接收 JSON 数据并将其转换为字典。打印字典结果如下: Objekt: { author = blub; authorUID = 28084; date = "31.07.10"; numVo
我将一些对象标记为不事件 [apIndicators[i] setValue:[NSNumber numberWithBool:NO] forKey:@"isActive"]; 后来我将其中一些设置为
我是一名优秀的程序员,十分优秀!