zoukankan      html  css  js  c++  java
  • 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(@"---失败");

        }];

     

  • 相关阅读:
    pythonchallenge 解谜 Level 6
    pythonchallenge 解谜 Level 5
    pythonchallenge 解谜 Level 4
    pythonchallenge 解谜 Level 3
    pythonchallenge 解谜 Level 2
    pythonchallenge 解谜 Level 1
    CCF 201912-2 回收站选址
    JavaWeb+JDBC+Servlet+SqlServer实现登录功能
    后台连接数据库的方法
    jQuery实现轮播图
  • 原文地址:https://www.cnblogs.com/cui-cui/p/7107982.html
Copyright © 2011-2022 走看看