解析:Create/Save 未注册的新用户
Parse: Create/Save New User without signUp
Parse 似乎不允许我创建新用户,除非调用注册块。
似乎 Parse 也不允许您编辑 username/password 除非该用户是当前用户登录。
目标是创建一个新用户,保存他,当他们稍后注册时,我可以识别他们以前的用户帐户,如果不存在,则创建一个。
Signup/Login 阻止方法不是答案,我不想更改当前用户。
PFQuery *query = [PFUser query];
PFUser *userAgain = (PFUser *)[query getObjectWithId:user.objectId];
userAgain.username = "another_username";
// This will throw an exception, since the PFUser is not authenticated
[userAgain save]
P.S。
这是电梯间距。这是一个聊天应用程序(使用 phone# 注册)。我想邀请我的通讯录中的用户(但不是应用程序中的用户)加入 "chatroom"。所以我为他们的 phone# 创建了一个用户帐户。当他们注册时,我登录之前创建的用户(选中 phone#s),他们在收件箱中看到我的 "chatroom"。
您可以考虑使用 enableAutomaticUser
。如果您在用户和数据存储中的某个其他对象之间添加关系,那么该用户将被保存。我没有尝试这样做以确保在您设置电子邮件和密码(或请求重设密码)之前不会创建新的匿名用户,但它应该有效。
您可以设置用户的邮箱和密码,然后保存。
好的,这是我必须采取的步骤。
在登录端
为匿名用户启用 enableAutomaticUser
。
PFQuery
用户注册以确保他的帐户不存在基于他的 phoneNumber
如果 PFQuery
有一个对象,保存这个 PFUser
,我们将在之后使用他的凭据登录,如果短信验证是 true
。
注册结束
对于每个 phoneNumber
,确保用户不存在。如果是,请忘记 phoneNumber
,添加 PFuser
枚举每个 phoneNumber
以使用 REST API
进行注册
- (void) saveNewUserWithPhoneNumber:(NSString *)phoneNumber
{
NSURL *url = [NSURL URLWithString:@"https://api.parse.com/1/users"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:API KEY forHTTPHeaderField:@"X-Parse-REST-API-Key"];
[request setValue:APP ID forHTTPHeaderField:@"X-Parse-Application-Id"];
NSDictionary *dict = @{@"username":phoneNumber,@"password":phoneNumber,PF_USER_PHONENUMBER:phoneNumber, PF_USER_ISVERIFIED: @NO};
NSError *error;
NSData *postBody = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];
[request setHTTPBody:postBody];
// Send request to Parse and parse returned data
[NSURLConnection sendAsynchronousRequest:request
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (!connectionError) {
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSString *objectId = [responseDictionary valueForKey:@"objectId"];
[_arrayOfSelectedUsers addObject:[PFUser objectWithoutDataWithObjectId:objectId]];
x--;
//If we finished all the phone numbers, create the chatroom;
if (x == 0){
[self actionSend];
}
} else {
}
}];
}
如果您缓存了原始用户的密码,您可以在创建新用户后使用该用户重新登录。看起来有点老套,但对我有用。
Parse 似乎不允许我创建新用户,除非调用注册块。
似乎 Parse 也不允许您编辑 username/password 除非该用户是当前用户登录。
目标是创建一个新用户,保存他,当他们稍后注册时,我可以识别他们以前的用户帐户,如果不存在,则创建一个。
Signup/Login 阻止方法不是答案,我不想更改当前用户。
PFQuery *query = [PFUser query];
PFUser *userAgain = (PFUser *)[query getObjectWithId:user.objectId];
userAgain.username = "another_username";
// This will throw an exception, since the PFUser is not authenticated
[userAgain save]
P.S。 这是电梯间距。这是一个聊天应用程序(使用 phone# 注册)。我想邀请我的通讯录中的用户(但不是应用程序中的用户)加入 "chatroom"。所以我为他们的 phone# 创建了一个用户帐户。当他们注册时,我登录之前创建的用户(选中 phone#s),他们在收件箱中看到我的 "chatroom"。
您可以考虑使用 enableAutomaticUser
。如果您在用户和数据存储中的某个其他对象之间添加关系,那么该用户将被保存。我没有尝试这样做以确保在您设置电子邮件和密码(或请求重设密码)之前不会创建新的匿名用户,但它应该有效。
您可以设置用户的邮箱和密码,然后保存。
好的,这是我必须采取的步骤。
在登录端
为匿名用户启用
enableAutomaticUser
。PFQuery
用户注册以确保他的帐户不存在基于他的phoneNumber
如果
PFQuery
有一个对象,保存这个PFUser
,我们将在之后使用他的凭据登录,如果短信验证是true
。
注册结束
对于每个
phoneNumber
,确保用户不存在。如果是,请忘记phoneNumber
,添加PFuser
枚举每个
进行注册phoneNumber
以使用 REST API- (void) saveNewUserWithPhoneNumber:(NSString *)phoneNumber { NSURL *url = [NSURL URLWithString:@"https://api.parse.com/1/users"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setURL:url]; [request setHTTPMethod:@"POST"]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:API KEY forHTTPHeaderField:@"X-Parse-REST-API-Key"]; [request setValue:APP ID forHTTPHeaderField:@"X-Parse-Application-Id"]; NSDictionary *dict = @{@"username":phoneNumber,@"password":phoneNumber,PF_USER_PHONENUMBER:phoneNumber, PF_USER_ISVERIFIED: @NO}; NSError *error; NSData *postBody = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error]; [request setHTTPBody:postBody]; // Send request to Parse and parse returned data [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { if (!connectionError) { NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; NSString *objectId = [responseDictionary valueForKey:@"objectId"]; [_arrayOfSelectedUsers addObject:[PFUser objectWithoutDataWithObjectId:objectId]]; x--; //If we finished all the phone numbers, create the chatroom; if (x == 0){ [self actionSend]; } } else { } }]; }
如果您缓存了原始用户的密码,您可以在创建新用户后使用该用户重新登录。看起来有点老套,但对我有用。