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(@"---失败");

        }];

     

  • 相关阅读:
    原来是板子的硬件问题
    最简单的helloworld模块编译加载(linux3.5内核源码树建立)
    排序学习笔记
    配置开发环境遇到的一些问题及解决方法
    .NET基础之GridView控件
    .NET之页面数据缓存
    .NET基础之Calendar控件
    【转帖】DIV+CSS完美兼容IE6/IE7/FF的通用方法
    ADO.NET()Command
    .NET基础之DataList控件
  • 原文地址:https://www.cnblogs.com/cui-cui/p/7107982.html
Copyright © 2011-2022 走看看