リンクや写真の投稿など、Webサービスを利用したアプリを設計しています。最初のViewControllerは、ユーザーのデフォルトのユーザー名とパスワードをチェックし、それが正しい場合は、ユーザーがHome View Controllerにログインできるようにしますが、正しくない場合は、ユーザーをログインView Controllerに誘導します(初めての場合)。アプリケーションが実行されていることも、ユーザーをログインビューコントローラーに誘導します)。
ホームビューコントローラーに接続しているさまざまなビューコントローラーがあります。たとえば、1つはWebサイトに写真を投稿するためのものであり、もう1つはWebへのリンクを投稿するためのものであり、もう1つはユーザープロファイルの設定を変更するためのものです。
私はRestKitAPIを使用してWebに投稿しています。投稿に使用するコードは次のとおりです。
- (IBAction)addLinkPressed:(UIButton *)sender {
[RKClient clientWithBaseURLString:@"http://MyWebsite.com"];
NSDictionary* params = [NSDictionary dictionaryWithObjectsAndKeys:
self.linkField.text, @"url",
self.linkTitleField.text, @"title",
self.linkSummaryField.text, @"summary",
nil];
RKRequest *request = [[RKClient sharedClient] post:@"/send_link.php" params:params delegate:self];
[request setUserData:@"sendLink"];
}
ビューコントローラごとにviewDidLoad
、投稿の認証を取得するために次のメソッドを配置します。
- (void)autoLogin {
[RKClient clientWithBaseURLString:@"http://MyWebsite.com"];
[RKObjectManager sharedManager].client=[RKClient sharedClient];
RKParams *parameters = [RKParams params];
[parameters setValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultUsername"] forParam:@"username"];
[parameters setValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"defaultPassword"] forParam:@"password"];
[[RKClient sharedClient] setAuthenticationType:RKRequestAuthenticationTypeHTTP];
RKRequest *request = [[RKClient sharedClient] post:@"/login.php" params:parameters delegate:self];
[request setUserData:@"login"];
}
質問:各View Controllerにログインする以外に、Webサイトから投稿用の認証を取得する方法はありますか?各ViewControllerにログインする場合の問題は、ロギングプロセスでエラーが発生し、ユーザーがPOSTを実行できない場合があることです。ユーザーが正しいユーザー名とパスワードを入力するとすぐに、ユーザーが自分でログアウトするかアプリを削除するまでログインしたままになる方法が必要です。
私はこの相対的な質問を見つけましたが、それはそれほど役に立たなかったか、答えをよく理解していませんでした。任意の考えやアイデアをいただければ幸いです。