iOS OAuth2.0的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS OAuth2.0的使用相关的知识,希望对你有一定的参考价值。

OAuth是一个关于授权(authorization)的开放网络标准,定义了四种授权方式:

  • 授权码模式(authorization code)
  • 简化模式(implicit)
  • 密码模式(resource owner password credentials)
  • 客户端模式(client credentials)

具体的模式介绍就不多说了,我用到的是客户端模式授权,没有用官网提供的几种解决办法,我这里用的是AFOAuth2Manager,实现起来很简单。

github地址:  https://github.com/AFNetworking/AFOAuth2Manager

如果你是密码模式,可以直接用下面的方法实现:

NSURL *baseURL = [NSURL URLWithString:@"http://example.com/"];
AFOAuth2Manager *OAuth2Manager =
            [[AFOAuth2Manager alloc] initWithBaseURL:baseURL
                                            clientID:kClientID
                                              secret:kClientSecret];

[OAuth2Manager authenticateUsingOAuthWithURLString:@"/oauth/token"
                                          username:@"username"
                                          password:@"password"
                                             scope:@"email"
                                           success:^(AFOAuthCredential *credential) {
                                               NSLog(@"Token: %@", credential.accessToken);
                                           }
                                           failure:^(NSError *error) {
                                               NSLog(@"Error: %@", error);
                                           }];
如果是客户端模式,方法如下,
NSURL *baseURL = [NSURL URLWithString:@"http://example.com/"];
AFOAuth2Manager *OAuth2Manager =
            [[AFOAuth2Manager alloc] initWithBaseURL:baseURL
                                            clientID:kClientID
                                              secret:kClientSecret];

[OAuth2Manager authenticateUsingOAuthWithURLString:@"

/oauth/token

" scope:@"scope" success:^(AFOAuthCredential * _Nonnull credential) {

        

        NSLog(@"---成功");

        NSLog(@"Token: %@", credential.accessToken);

    } failure:^(NSError * _Nonnull error) {

        NSLog(@"---失败");

    }];

 


以上是关于iOS OAuth2.0的使用的主要内容,如果未能解决你的问题,请参考以下文章

iOS 中的 OAuth 2.0 集成

没有 http 或 https 的 iOS 应用程序的 LinkedIn OAuth2.0 重定向 URL

iOS代码片段CodeSnippets

iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段

oAuth2.0:为啥需要“授权码”,然后才需要令牌?

iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段