morroko morroko - 5 months ago 92
iOS Question

How to manage Quick Blox Session?

I have a question regarding Quick blox API. Right now I am sign up an user using below code.

[QBRequest createSessionWithSuccessBlock:^(QBResponse *response, QBASession *session) {
// session created

QBUUser *user = [QBUUser user];
user.password = userPasswordTextField.text;
user.login = userNameTextField.text;
user.fullName = userRealNameTextField.text;
user.email = userEmailTextField.text;

// Registration sign up of User
[QBRequest signUp:user successBlock:^(QBResponse *response, QBUUser *user) {

[QBRequest createSessionWithSuccessBlock:^(QBResponse *response, QBASession *session) {
NSLog(@"checkingl registering");
[QBRequest userWithLogin:user.login successBlock:^(QBResponse *response, QBUUser *user) {
NSLog(@"checkingl updatingqb");

} errorBlock:^(QBResponse *response) {
// Handle error
}];

}errorBlock:^(QBResponse *response) {
// Handle error
}];

} errorBlock:^(QBResponse *response) {
// Handle error here
NSLog(@"error while signing up with QB");

NSLog(@"fail sign Up %@",response);;

[self showAlert:nil message:@"User with login that has already been taken" cancelButtonTitle:nil otherButtonTitle:@"OK"];


return ;

}];
} errorBlock:^(QBResponse *response) {
// handle errors
NSLog(@" error in creating session %@", response.error);
}];


In above code first I am creating a session and sign up an new user, then I am login user. At sign up time I did't log in user for QuickBlox Chat at signup time, But later when I will log in into Quick blox chat in another module, still I have to create new session or I have to maintain new session.

Answer

Any session will remain valid for 2 hours after the last request to QuickBlox. To check a session's expiration date use this next snippet of code:

NSDate *sessionExpiratioDate = [QBBaseModule sharedModule].tokenExpirationDate;
NSDate *currentDate = [NSDate date];
NSTimeInterval interval = [currentDate timeIntervalSinceDate:tokenExpirationDate];
if(interval > 0){
  // recreate session here
}

Check this guide. This feature is available since 1.8 iOS SDK.

Reference: Igor Khomenko

Comments