La librairie SSKeyChain est très pratique pour stocker sur IOS les identifiants / mots de passe de l'utilisateur de façon sécurisée (Ils restent dans le bac à sable de l'application)
Source : https://github.com/soffes/sskeychain
La librairie SSKeyChain est très pratique pour stocker sur IOS les identifiants / mots de passe de l'utilisateur de façon sécurisée (Ils restent dans le bac à sable de l'application)
Source : https://github.com/soffes/sskeychain
Utilisation :
//
// Auth.h
// Opinion-Client
//
// Created by Benoît Desnos on 22/02/13.
// Copyright (c) 2013 Benoît Desnos. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Auth : NSObject
+(Auth*)sharedManager;
-(void) connecter:(NSString *) login motdepasse:(NSString *) password;
-(void) deconnecter;
-(NSString *) login;
-(NSString *) pass;
@end
//
// Auth.m
// Opinion-Client
//
// Created by Benoît Desnos on 22/02/13.
// Copyright (c) 2013 Benoît Desnos. All rights reserved.
//
#import "Auth.h"
#import "SSKeychain.h"
@implementation Auth
static Auth* sharedManager = nil;
+(Auth*)sharedManager
{
@synchronized(sharedManager) {
if (!sharedManager) {
sharedManager = [[[self class] alloc] init];
}
}
return sharedManager;
}
// Enregistrer le compte
-(void) connecter:(NSString *) login motdepasse:(NSString *) password
{
[self deconnecter];
[SSKeychain setPassword:password forService:@"Opinion" account:login];
}
// Supprimer le compte
-(void) deconnecter
{
NSArray * accounts = [SSKeychain allAccounts];
for(NSDictionary * account in accounts)
{
[SSKeychain deletePasswordForService:@"Opinion" account:[account valueForKey:@"acct"]];
}
}
// Lire le login
-(NSString *) login
{
if([SSKeychain accountsForService:@"Opinion"] != nil &&
[[SSKeychain accountsForService:@"Opinion"] count]>0)
return [[[SSKeychain accountsForService:@"Opinion"] objectAtIndex:0]valueForKey:kSSKeychainAccountKey];
else
return nil;
}
// Lire le mot de passe
-(NSString *) pass
{
if([SSKeychain accountsForService:@"Opinion"] != nil &&
[[SSKeychain accountsForService:@"Opinion"] count]>0)
return [SSKeychain passwordForService:@"Opinion" account:[[[SSKeychainaccountsForService:@"Opinion"] objectAtIndex:0] valueForKey:kSSKeychainAccountKey]];
else
return nil;
}
@end