Android Developer Android Developer - 4 days ago 5
iOS Question

How to keep the user logged in or check if the user is logged in or not in Shopify?

Hi I used the following code to login a user in Shopify.

NSArray *items = @[[BUYAccountCredentialItem itemWithEmail:email], [BUYAccountCredentialItem itemWithPassword:password]];
BUYAccountCredentials *credentials = [BUYAccountCredentials credentialsWithItems:items];

[self.client loginCustomerWithCredentials:credentials callback:^(BUYCustomer * customer, BUYCustomerToken * token, NSError * _Nullable error) {
if (customer && !error) {

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:token.accessToken forKey:@"CustomerToken"];


[prefs setInteger:[token.customerID integerValue] forKey:@"CustomerId"];
[prefs synchronize];



NSLog(@"Success fully loged in token %@ %@",token.accessToken,token.customerID);
UINavigationController *navigationController = self.navigationController;
[navigationController popViewControllerAnimated:YES];

}else{
[self showEror:@"LogIn Failed" message:@"Please provide valid Details"];
}
}];


Every time I have to login and proceed further. I stored token and customerId in local. How can I make sure that user automatically log in when app opens unless they doesn't logout. Thank you.

Answer

As you are storing CustomerToken in your NSUserDefault, in didFinishLaunchingWithOptions check the value of CustomerToken if there is any value in it navigate the user to your Home Screen if there is not any value in it then navigate the user to your Login Screen.

Also, make sure while logging out, you will clear the value from NSUserDefault

Comments