gpt4 book ai didi

ios - 解析匿名用户不会持久存在并导致 session 错误

转载 作者:行者123 更新时间:2023-12-01 16:30:13 24 4
gpt4 key购买 nike

我当前正在使用Parse的Anonymous用户,使用逻辑,如果未检测到didFinishLaunchingWithOptions,则创建一个匿名用户:

if ([PFUser currentUser]){
NSLog(@"there is a current user");
} else {
[PFUser enableAutomaticUser];
PFACL *defaultACL = [PFACL ACL];
[PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];
NSLog(@"make an Automatic user");
[[PFUser currentUser] saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error){
if (error){
NSLog(@"Error: %@", error);
}
}];
}

但是,我遇到一个问题,即当我重新启动应用程序时,有时会匿名用户 重新创建,否则当我尝试将数据保存到同一匿名用户时它将提供 session 错误。我应该执行其他检查吗?谢谢!

最佳答案

这是我的解决方法,而不是使用“解析匿名用户”。它基于设备的identifierForVendor,它对于特定安装在特定设备上是唯一的。这意味着在正常情况下,用户仅安装一次您的应用程序,然后再对其进行更新,则该字符串将持续存在。但是,如果您要在测试设备上进行多次调试和安装/删除操作,则这不是最佳解决方案。

密码字段下面有一些非常骇人听闻的东西,您不应该在正式版应用中这样做。希望这可以帮助。

if (![PFUser currentUser]){
NSString *uuid = [[UIDevice currentDevice] identifierForVendor].UUIDString;

PFQuery *userQuery = [PFUser query];
[userQuery whereKey:@"username" equalTo:uuid];
[userQuery findObjectsInBackgroundWithBlock:^(NSArray * _Nullable objects, NSError * _Nullable error) {
if (error){
NSLog(@"Error: %@", error);
} else {
if (objects.count == 0){

//Make new user
PFUser *newUser = [PFUser user];
newUser.username = uuid;
newUser.password = @"123456";

NSString *deviceType = [UIDeviceHardware platformString];
if (deviceType){
[newUser setObject:deviceType forKey:@"deviceName"];
}

[newUser signUpInBackgroundWithBlock:^(BOOL succeeded, NSError * _Nullable error) {
if (error){
NSLog(@"Error: %@", error);
} else {
NSLog(@"New user signed up: %@", newUser.username);
NSLog(@"done");
}
}];
} else {

NSString *newUUID = [NSString stringWithFormat:@"%@-%@", uuid, [self generate4Alphanumeric]];
PFUser *newUser = [PFUser user];
newUser.username = newUUID;
newUser.password = @"123456";

NSString *deviceType = [UIDeviceHardware platformString];
if (deviceType){
[newUser setObject:deviceType forKey:@"deviceName"];
}

[newUser signUpInBackgroundWithBlock:^(BOOL succeeded, NSError * _Nullable error) {
if (error){
NSLog(@"Error: %@", error);
} else {
NSLog(@"Modified user signed up: %@", newUser.username);
NSLog(@"done");
}
}];

}
}
}];

} else {
NSLog(@"currentUser: %@", [PFUser currentUser].username);
}

关于ios - 解析匿名用户不会持久存在并导致 session 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com