- redesign OAuth credential store and retrieve
This commit is contained in:
parent
6644db05d7
commit
182b4f0b1c
@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||||
{
|
{
|
||||||
|
|
||||||
[FBSDKSettings setAppID:@"213761522305123"];
|
[FBSDKSettings setAppID:@"213761522305123"];
|
||||||
|
|
||||||
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
|
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
|
||||||
|
|||||||
@ -38,7 +38,7 @@ PODS:
|
|||||||
- NSString-Helper (1.0.6)
|
- NSString-Helper (1.0.6)
|
||||||
- nv-ios-http-status (0.0.1)
|
- nv-ios-http-status (0.0.1)
|
||||||
- PEAR-FileManager-iOS (1.3.1)
|
- PEAR-FileManager-iOS (1.3.1)
|
||||||
- PNObject (2.2):
|
- PNObject (2.3):
|
||||||
- AFNetworking
|
- AFNetworking
|
||||||
- CodFis-Helper
|
- CodFis-Helper
|
||||||
- DDDKeychainWrapper
|
- DDDKeychainWrapper
|
||||||
@ -85,7 +85,7 @@ SPEC CHECKSUMS:
|
|||||||
NSString-Helper: 389265918b2a4c5b0d09f0e03c607e8e5e254dd7
|
NSString-Helper: 389265918b2a4c5b0d09f0e03c607e8e5e254dd7
|
||||||
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
|
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
|
||||||
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
|
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
|
||||||
PNObject: e661098f83a93745abc594aad793506891ef7498
|
PNObject: 73ee7d7b28c1c1bb1f21067770c1459b9314fcd1
|
||||||
PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
|
PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
|
||||||
RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109
|
RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109
|
||||||
Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66
|
Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "PNObject",
|
"name": "PNObject",
|
||||||
"version": "2.2",
|
"version": "2.3",
|
||||||
"summary": "PNObject is a simple replica of the more complex ParseObject",
|
"summary": "PNObject is a simple replica of the more complex ParseObject",
|
||||||
"homepage": "https://github.com/giuseppenucifora/PNObject",
|
"homepage": "https://github.com/giuseppenucifora/PNObject",
|
||||||
"license": {
|
"license": {
|
||||||
@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
"source": {
|
"source": {
|
||||||
"git": "https://github.com/giuseppenucifora/PNObject.git",
|
"git": "https://github.com/giuseppenucifora/PNObject.git",
|
||||||
"tag": "2.2"
|
"tag": "2.3"
|
||||||
},
|
},
|
||||||
"platforms": {
|
"platforms": {
|
||||||
"ios": "8.0"
|
"ios": "8.0"
|
||||||
|
|||||||
4
Example/Pods/Manifest.lock
generated
4
Example/Pods/Manifest.lock
generated
@ -38,7 +38,7 @@ PODS:
|
|||||||
- NSString-Helper (1.0.6)
|
- NSString-Helper (1.0.6)
|
||||||
- nv-ios-http-status (0.0.1)
|
- nv-ios-http-status (0.0.1)
|
||||||
- PEAR-FileManager-iOS (1.3.1)
|
- PEAR-FileManager-iOS (1.3.1)
|
||||||
- PNObject (2.2):
|
- PNObject (2.3):
|
||||||
- AFNetworking
|
- AFNetworking
|
||||||
- CodFis-Helper
|
- CodFis-Helper
|
||||||
- DDDKeychainWrapper
|
- DDDKeychainWrapper
|
||||||
@ -85,7 +85,7 @@ SPEC CHECKSUMS:
|
|||||||
NSString-Helper: 389265918b2a4c5b0d09f0e03c607e8e5e254dd7
|
NSString-Helper: 389265918b2a4c5b0d09f0e03c607e8e5e254dd7
|
||||||
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
|
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
|
||||||
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
|
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
|
||||||
PNObject: e661098f83a93745abc594aad793506891ef7498
|
PNObject: 73ee7d7b28c1c1bb1f21067770c1459b9314fcd1
|
||||||
PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
|
PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
|
||||||
RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109
|
RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109
|
||||||
Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66
|
Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = 'PNObject'
|
s.name = 'PNObject'
|
||||||
s.version = '2.2.2'
|
s.version = '2.3'
|
||||||
s.summary = 'PNObject is a simple replica of the more complex ParseObject'
|
s.summary = 'PNObject is a simple replica of the more complex ParseObject'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -246,6 +246,10 @@ typedef NS_ENUM(NSInteger, OAuthMode) {
|
|||||||
*/
|
*/
|
||||||
- (BOOL) setCredentialTokenForOauthMode:(OAuthMode) oauthMode;
|
- (BOOL) setCredentialTokenForOauthMode:(OAuthMode) oauthMode;
|
||||||
|
|
||||||
|
- (AFOAuthCredential * _Nullable) currentOauthClientCredential;
|
||||||
|
|
||||||
|
- (AFOAuthCredential * _Nullable) currentOauthUserCredential;
|
||||||
|
|
||||||
///--------------------------------------
|
///--------------------------------------
|
||||||
#pragma mark - PNObjectConfig Properties
|
#pragma mark - PNObjectConfig Properties
|
||||||
///--------------------------------------
|
///--------------------------------------
|
||||||
@ -276,16 +280,6 @@ typedef NS_ENUM(NSInteger, OAuthMode) {
|
|||||||
*/
|
*/
|
||||||
@property (nonatomic, strong, readonly, nonnull) AFHTTPRequestSerializer *oauthHttpRequestSerializer;
|
@property (nonatomic, strong, readonly, nonnull) AFHTTPRequestSerializer *oauthHttpRequestSerializer;
|
||||||
|
|
||||||
/**
|
|
||||||
* <#Description#>
|
|
||||||
*/
|
|
||||||
@property (nonatomic, strong, nullable, readonly) AFOAuthCredential *currentOauthClientCredential;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@property (nonatomic, strong, nullable, readonly) AFOAuthCredential *currentOauthUserCredential;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <#Description#>
|
* <#Description#>
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -205,23 +205,18 @@ static bool isFirstAccess = YES;
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AFOAuthCredential *clientCredential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
AFOAuthCredential *credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
|
|
||||||
if (clientCredential && ![clientCredential isExpired]) {
|
if (!credential || [credential isExpired]) {
|
||||||
_currentOauthClientCredential = clientCredential;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
[AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
}
|
}
|
||||||
|
|
||||||
AFOAuthCredential *userCredential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
|
||||||
if (userCredential && ![userCredential isExpired]) {
|
if (!credential || [credential isExpired]) {
|
||||||
_currentOauthUserCredential = userCredential;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
[AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
@ -334,22 +329,6 @@ static bool isFirstAccess = YES;
|
|||||||
[_managerJsonRequestSerializer setValue:[_headerFields objectForKey:key] forHTTPHeaderField:key];
|
[_managerJsonRequestSerializer setValue:[_headerFields objectForKey:key] forHTTPHeaderField:key];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_currentOauthUserCredential && ![_currentOauthUserCredential isExpired] && ![[_manager requestSerializer] hasAuthorizationHeaderField]) {
|
|
||||||
|
|
||||||
[_managerHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
[_managerJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
[_manager.requestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
}
|
|
||||||
else if (_currentOauthClientCredential && ![_currentOauthClientCredential isExpired] && ![[_manager requestSerializer] hasAuthorizationHeaderField]) {
|
|
||||||
|
|
||||||
[_managerHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
[_managerJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
[_manager.requestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[self refreshToken];
|
|
||||||
}
|
|
||||||
|
|
||||||
_manager.responseSerializer = [AFJSONResponseSerializerWithData serializer];
|
_manager.responseSerializer = [AFJSONResponseSerializerWithData serializer];
|
||||||
_manager.requestSerializer = _managerJsonRequestSerializer;
|
_manager.requestSerializer = _managerJsonRequestSerializer;
|
||||||
}
|
}
|
||||||
@ -386,11 +365,13 @@ static bool isFirstAccess = YES;
|
|||||||
_clientCredentialAuthManager.responseSerializer = [AFJSONResponseSerializerWithData serializer];
|
_clientCredentialAuthManager.responseSerializer = [AFJSONResponseSerializerWithData serializer];
|
||||||
_clientCredentialAuthManager.requestSerializer = _oauthJsonRequestSerializer;
|
_clientCredentialAuthManager.requestSerializer = _oauthJsonRequestSerializer;
|
||||||
|
|
||||||
if (_currentOauthClientCredential && ![_currentOauthClientCredential isExpired]) {
|
AFOAuthCredential *credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
|
|
||||||
[_oauthHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthClientCredential];
|
if (credential && ![credential isExpired]) {
|
||||||
[_oauthJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthClientCredential];
|
|
||||||
[_clientCredentialAuthManager.requestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthClientCredential];
|
[_oauthHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
|
[_oauthJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
|
[_clientCredentialAuthManager.requestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -421,13 +402,13 @@ static bool isFirstAccess = YES;
|
|||||||
[_oauthHttpRequestSerializer setValue:[_headerFields objectForKey:key] forHTTPHeaderField:key];
|
[_oauthHttpRequestSerializer setValue:[_headerFields objectForKey:key] forHTTPHeaderField:key];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AFOAuthCredential *credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
|
||||||
|
if (credential && ![credential isExpired]) {
|
||||||
|
|
||||||
if (_currentOauthUserCredential && ![_currentOauthUserCredential isExpired] && ![[_manager requestSerializer] hasAuthorizationHeaderField]) {
|
[_oauthHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
|
[_oauthJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
[_oauthHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
[_userCredentialAuthManager.requestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
[_oauthJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
[_userCredentialAuthManager.requestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_userCredentialAuthManager.responseSerializer = [AFJSONResponseSerializerWithData serializer];
|
_userCredentialAuthManager.responseSerializer = [AFJSONResponseSerializerWithData serializer];
|
||||||
@ -440,18 +421,14 @@ static bool isFirstAccess = YES;
|
|||||||
- (BOOL) resetTokenForOauthMode:(OAuthMode) oauthMode {
|
- (BOOL) resetTokenForOauthMode:(OAuthMode) oauthMode {
|
||||||
switch (oauthMode) {
|
switch (oauthMode) {
|
||||||
case OAuthModeClientCredential:
|
case OAuthModeClientCredential:
|
||||||
if (_currentOauthClientCredential) {
|
|
||||||
_currentOauthClientCredential = nil;
|
return [AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
[AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
|
||||||
return [AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case OAuthModePassword:
|
case OAuthModePassword:
|
||||||
if (_currentOauthUserCredential) {
|
|
||||||
_currentOauthUserCredential = nil;
|
|
||||||
[AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
|
||||||
return [AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
return [AFOAuthCredential deleteCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -508,8 +485,6 @@ static bool isFirstAccess = YES;
|
|||||||
WithBlockSuccess:(nullable void (^)(BOOL refreshSuccess))success
|
WithBlockSuccess:(nullable void (^)(BOOL refreshSuccess))success
|
||||||
failure:(nullable void (^)(NSError * _Nonnull error))failure {
|
failure:(nullable void (^)(NSError * _Nonnull error))failure {
|
||||||
|
|
||||||
__block __typeof__(_currentOauthClientCredential) wCurrentOauthClientCredential = _currentOauthClientCredential;
|
|
||||||
__block __typeof__(_currentOauthUserCredential) wCurrentOauthUserCredential = _currentOauthUserCredential;
|
|
||||||
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
||||||
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
||||||
__block __typeof__(_clientCredentialAuthManager) wClientCredentialAuthManager = _clientCredentialAuthManager;
|
__block __typeof__(_clientCredentialAuthManager) wClientCredentialAuthManager = _clientCredentialAuthManager;
|
||||||
@ -517,11 +492,12 @@ static bool isFirstAccess = YES;
|
|||||||
__block __typeof__(_manager) wManager = _manager;
|
__block __typeof__(_manager) wManager = _manager;
|
||||||
|
|
||||||
switch (oauthMode) {
|
switch (oauthMode) {
|
||||||
case OAuthModeClientCredential:
|
case OAuthModeClientCredential: {
|
||||||
if (_currentOauthClientCredential && ![_currentOauthClientCredential isExpired]) {
|
AFOAuthCredential *credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
|
|
||||||
[_clientCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl refreshToken:[_currentOauthClientCredential refreshToken] success:^(AFOAuthCredential * _Nonnull credential) {
|
if (credential && ![credential isExpired]) {
|
||||||
wCurrentOauthClientCredential = credential;
|
|
||||||
|
[_clientCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl refreshToken:[credential refreshToken] success:^(AFOAuthCredential * _Nonnull credential) {
|
||||||
|
|
||||||
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceClientCredentialIdentifier];
|
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
|
|
||||||
@ -552,7 +528,6 @@ static bool isFirstAccess = YES;
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[_clientCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
[_clientCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
||||||
wCurrentOauthClientCredential = credential;
|
|
||||||
|
|
||||||
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceClientCredentialIdentifier];
|
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
|
|
||||||
@ -573,13 +548,15 @@ static bool isFirstAccess = YES;
|
|||||||
}
|
}
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case OAuthModePassword:
|
case OAuthModePassword:{
|
||||||
if (_currentOauthClientCredential && ![_currentOauthClientCredential isExpired]) {
|
|
||||||
if (_currentOauthUserCredential && ![_currentOauthUserCredential isExpired]) {
|
|
||||||
|
|
||||||
[_userCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl refreshToken:[_currentOauthUserCredential refreshToken] success:^(AFOAuthCredential * _Nonnull credential) {
|
AFOAuthCredential *credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
wCurrentOauthUserCredential = credential;
|
|
||||||
|
if (credential && ![credential isExpired]) {
|
||||||
|
|
||||||
|
[_userCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl refreshToken:[credential refreshToken] success:^(AFOAuthCredential * _Nonnull credential) {
|
||||||
|
|
||||||
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
|
||||||
@ -635,20 +612,7 @@ static bool isFirstAccess = YES;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (retries > 0) {
|
|
||||||
[self refreshTokenForOauthMode:OAuthModeClientCredential retries:retries-1 WithBlockSuccess:^(BOOL refreshSuccess) {
|
|
||||||
[self refreshTokenForOauthMode:oauthMode retries:retries-1 WithBlockSuccess:success failure:failure];
|
|
||||||
} failure:failure];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (failure) {
|
|
||||||
NSError *error = [NSError errorWithDomain:@"" code:kHTTPStatusCodeBadRequest userInfo:nil];
|
|
||||||
failure(error);
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:PNObjectLocalNotificationRefreshTokenUserFail object:nil];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: {
|
default: {
|
||||||
@ -679,15 +643,12 @@ static bool isFirstAccess = YES;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__block __typeof__(_currentOauthUserCredential) wCurrentOauthCredential = _currentOauthUserCredential;
|
|
||||||
|
|
||||||
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
||||||
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
||||||
__block __typeof__(_manager) wManager = _manager;
|
__block __typeof__(_manager) wManager = _manager;
|
||||||
__block __typeof__(_userCredentialAuthManager) wUserCredentialAuthManager = _userCredentialAuthManager;
|
__block __typeof__(_userCredentialAuthManager) wUserCredentialAuthManager = _userCredentialAuthManager;
|
||||||
|
|
||||||
[_userCredentialAuthManager authenticateUsingFacebookOAuthWithURLString:_currentClientCredenzialEndPointUrl facebookId:facebookId facebookToken:facebookToken scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
[_userCredentialAuthManager authenticateUsingFacebookOAuthWithURLString:_currentClientCredenzialEndPointUrl facebookId:facebookId facebookToken:facebookToken scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
||||||
wCurrentOauthCredential = credential;
|
|
||||||
|
|
||||||
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
|
||||||
@ -729,7 +690,6 @@ static bool isFirstAccess = YES;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__block __typeof__(_currentOauthUserCredential) wCurrentOauthCredential = _currentOauthUserCredential;
|
|
||||||
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
||||||
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
||||||
__block __typeof__(_manager) wManager = _manager;
|
__block __typeof__(_manager) wManager = _manager;
|
||||||
@ -737,7 +697,6 @@ static bool isFirstAccess = YES;
|
|||||||
|
|
||||||
|
|
||||||
[_userCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl username:email password:password scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
[_userCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl username:email password:password scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
||||||
wCurrentOauthCredential = credential;
|
|
||||||
|
|
||||||
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
|
||||||
@ -773,7 +732,6 @@ static bool isFirstAccess = YES;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__block __typeof__(_currentOauthUserCredential) wCurrentOauthCredential = _currentOauthUserCredential;
|
|
||||||
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
__block __typeof__(_managerHttpRequestSerializer) wHttpSerializer = _managerHttpRequestSerializer;
|
||||||
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
__block __typeof__(_managerJsonRequestSerializer) wJsonSerializer = _managerJsonRequestSerializer;
|
||||||
__block __typeof__(_manager) wManager = _manager;
|
__block __typeof__(_manager) wManager = _manager;
|
||||||
@ -781,7 +739,6 @@ static bool isFirstAccess = YES;
|
|||||||
|
|
||||||
|
|
||||||
[_userCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl username:username password:password scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
[_userCredentialAuthManager authenticateUsingOAuthWithURLString:_currentClientCredenzialEndPointUrl username:username password:password scope:@"" success:^(AFOAuthCredential * _Nonnull credential) {
|
||||||
wCurrentOauthCredential = credential;
|
|
||||||
|
|
||||||
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
[AFOAuthCredential storeCredential:credential withIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
|
||||||
@ -869,23 +826,24 @@ static bool isFirstAccess = YES;
|
|||||||
switch (oauthMode) {
|
switch (oauthMode) {
|
||||||
case OAuthModeClientCredential:{
|
case OAuthModeClientCredential:{
|
||||||
|
|
||||||
NSLog(@"%@",_currentOauthClientCredential);
|
AFOAuthCredential *credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
if (!_currentOauthClientCredential || (_currentOauthClientCredential && ![_currentOauthClientCredential isExpired])) {
|
if (!credential || (credential && ![credential isExpired])) {
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
[_managerHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthClientCredential];
|
[_managerHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
[_managerJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthClientCredential];
|
[_managerJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
[_manager.requestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthClientCredential];
|
[_manager.requestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OAuthModePassword:{
|
case OAuthModePassword:{
|
||||||
|
|
||||||
if (!_currentOauthUserCredential || (_currentOauthUserCredential && ![_currentOauthUserCredential isExpired])) {
|
AFOAuthCredential *credential = [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
if (!credential || (credential && ![credential isExpired])) {
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
[_managerHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
[_managerHttpRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
[_managerJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
[_managerJsonRequestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
[_manager.requestSerializer setAuthorizationHeaderFieldWithCredential:_currentOauthUserCredential];
|
[_manager.requestSerializer setAuthorizationHeaderFieldWithCredential:credential];
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: {
|
default: {
|
||||||
@ -897,5 +855,12 @@ static bool isFirstAccess = YES;
|
|||||||
}
|
}
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
- (AFOAuthCredential * _Nullable) currentOauthClientCredential {
|
||||||
|
return [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceClientCredentialIdentifier];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (AFOAuthCredential * _Nullable) currentOauthUserCredential {
|
||||||
|
return [AFOAuthCredential retrieveCredentialWithIdentifier:PNObjectServiceUserCredentialIdentifier];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user