新浪微博 SSO授权登陆笔记

  0. 使用xcode创建一个项目 ThirdLogin_weibo

  1. 打开新浪微博的开发者平台, 添加一个应用 "迷途SKY"(随便写)

     1)配置应用的基本信息:

    >Bundle ID 一定要与  ThirdLogin_weibo 的Bundle identifier 一致, 否则会有bug  

    >在高级信息中添加授权回调页url: https://api.weibo.com/oauth2/default.html 参考文档建议填写的url

> 其他的参数可以随便填

  2. 选择 "文档" -> "移动应用" -> "移动应用SSO授权"  下载SDK

  3. 项目中导入"libWeiboSDK"文件  参考开发文档

   > 配置: 选择 "BuildSetting" -> 搜索"Other Linker Flags"   添加 "-ObjC"

   > 添加框架依赖:CoreGraphics.framework CoreText.framework CoreTelephony.framework Security.framework

          SystemConfiguration.framework ImageIO.framework QuartzCore.framework libz.tbd

          libsqlite3.tbd  参考SDK文档

   > 配置URL Scheme:  在info.plist 添加URL types  URL Schemes=wb1883208243(wb+appkey) URL identifier=com.weibo

   > info.plist中 配置一下 xcode7开始的网络请求安全机制

4.代码示例

    >在appDelegate中导入 "WeiboSDK.h"

    >在appDelegate的  didFinishLaunchingWithOptions 方法中 打开微博sdk的调试功能和注册appkey

    [WeiboSDK enableDebugMode:YES];

[WeiboSDK registerApp:kAppKey]; // kAppKey 添加微博应用获取的appkey

>在appDelegate 添加下面两个方法:         

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    return [WeiboSDK handleOpenURL:url delegate:self];
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return [WeiboSDK handleOpenURL:url delegate:self ];
}

   > 在appDelegate 添加获取授权结果的代理方法  

/**
 收到一个来自微博客户端程序的响应

 收到微博的响应后,第三方应用可以通过响应类型、响应的数据和 WBBaseResponse.userInfo 中的数据完成自己的功能
 @param response 具体的响应对象
 */
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response{

    // 是授权响应
    if ([response isKindOfClass:[WBAuthorizeResponse class]]) {

        WBAuthorizeResponse *wbRes = (WBAuthorizeResponse *)response;

        NSLog(@"%@, %@, %@, %@", wbRes.userID, wbRes.accessToken, wbRes.expirationDate, wbRes.refreshToken);

     // 获取到 accessToke  发送请求到微博的 获取用户的 信息 
} } - (void)didReceiveWeiboRequest:(WBBaseRequest *)request{ }

  在ViewController 中添加一个 登陆按钮 发送登陆请求 获取授权 accessToke

#define kRedirectURI @"https://api.weibo.com/oauth2/default.html" // 微博回调页

#import "ViewController.h"
#import "WeiboSDK.h"

@interface ViewController ()

@end

@implementation ViewController

- (IBAction)loginClick:(id)sender {

    WBAuthorizeRequest *request = [WBAuthorizeRequest request];
    request.redirectURI = kRedirectURI;
    request.scope = @"all";  // userinfo 字段可以不写, 当获取到授权信息是可以在代理方法中获取 userinfo和accessToken等信息  可以用于校验
    request.userInfo = @{@"SSO_From": @"SendMessageToWeiboViewController",
                         @"Other_Info_1": [NSNumber numberWithInt:123],
                         @"Other_Info_2": @[@"obj1", @"obj2"],
                         @"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
    [WeiboSDK sendRequest:request];
}

@end

  

时间: 2024-10-05 00:27:07

新浪微博 SSO授权登陆笔记的相关文章

新浪微博SSO登陆机制

原文地址: http://blog.sina.com.cn/s/blog_7a09f0920101agni.html 最近在使用sina微博时,经常性交替使用 weibo.com 和 t.sina.cm.cn进入我的微博.发现当我在 t.sina.com.cn中登录之后,直接切换至weibo.com,这时候在 weibo.com是已经登录的,当我在 weibo.com进行注销之后,再切换至 t.sina.com.cn,这时候在 t.sina.com.cn也已经是注销的状态了. 对于SSO的实现方

微博授权登陆

微博使用AS会找不到jar包   需要将so文件放在main下jniLibs目录下 从下载的sdk中复制 AbsOpenAPI, AccessTokenKeeper, UsersAPI .java文件 自定义userInfo接收用户信息 /** * Created by Administrator on 2016/10/3. */public class SinaUserInfo { private String uid;//用户ID private String name;//用户昵称 pri

新浪微博SSO登录方式及OAUTH2.0认证和获取我的微博

今天弄了下新浪微博SSO登录方式及OAUTH2.0认证和获取我的微博,实现的效果如下图: //========================================================================================================================== 就这么简单的界面,简单的请求json,我居然弄了一整天,主要是新浪微博的文档写的看不懂,感觉他们的文档跟他们的sdk接不上. 遇到的一个问题是: sso pac

vio微博(Android)开发日记之SSO授权篇

在网上找了很久也没有发现比较好的android微博客户端可以提供学习-有的也是非常老旧了-摩擦摩擦-完全跟不上时代的步伐.一怒之下,vio微博应运而生. duang- 言归正传-新浪微博目前所采用的授权机制,已经完全抛弃了OAuth1.0 ,转向OAuth2.0.那么怎么进行OAuth2.0的认证呢? 首先,我们了解一下OAuth2.0: OAuth2.0是一个全新的协议,对之前的版本不进行向后兼容,但OAuth2.0的整体架构与之前的OAuth架构却是相同的. OAuth2.0的认证流程: (

OAuth2.0和SSO授权的区别

OAuth2.0和SSO授权 一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该访问令牌访问资源服务器的资源.由于用户的账号密码并不与本APP直接交互,而是与官方服务器交互,因而它是安全的. 图示: 流程: 1.获取未授权的Request Token. url:request token url. param:appKey/appSecret,签名方法/签名(如HMAC-SHA1)

iOS OAuth2.0认证和SSO授权

OAuth2.0和SSO授权 一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该访问令牌访问资源服务器的资源.由于用户的账号密码并不与本APP直接交互,而是与官方服务器交互,因而它是安全的. 图示: 流程: 1.获取未授权的Request Token. url:request token url. param:appKey/appSecret,签名方法/签名(如HMAC-SHA1)

基于Swift语言开发微信、QQ和微博的SSO授权登录代码分析

前言 Swift 语言,怎么说呢,有一种先接受后排斥,又欢迎的感觉,纵观国外大牛开源框架或项目演示,Swift几乎占据了多半,而国内虽然出现很多相关技术介绍和教程,但是在真正项目开发中使用的占据很少部分,原因一是目前熟练它的开发者并不多,二是版本不太稳定,还需要更成熟可靠的版本支持,但总之未来还是很有前景的,深有体会,不管是代码量还是编译效率,以及语言特性,现代性都优于Object-C,估计后续会被苹果作为官方开发语言,值得期待. 走起 鉴于此,笔者将之前用Object-C写的SSO授权登录:微

无处不在,详解iOS集成第三方登录(SSO授权登录<无需密码>)

1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享:http://www.cnblogs.com/qingche/p/3727559.html 可以和今天的一起集成使用. 2.集成前的准备工作 2.1.去ShareSDK(现为Mob)注册帐号,下载SDK,然后添加自己的应用后得到AppKey 下载地址:http://sharesdk.cn/Download 2.2.申请第三方登录的Appkey 例如: 新浪微博.腾讯微博.QQ.微信.豆瓣应用.人

微信登陆,微信SDK授权登陆经验分享

From:http://www.eoeandroid.com/thread-547012-1-1.html 最近因为项目需要做了微信登陆,好像也是微信最近才放出来的接口.还需要申请才能有权限实现授权.其实也比较简单,跟新浪微博和qq授权登陆差不多.不过还是有点差别,不知道是微信sdk本身就没有完善还是其他问题.会有一点蛋疼的地方,下面会细说.(由于等级不够,不能发在经验分享区,只能先写在这里了.希望对要做微信登陆的朋友有帮助,如果有不对的地方还希望大家直言不讳)<ignore_js_op> 首