iOS APP间授权登录(无需SDK类似微信登录)(源码+解析)

iOS APP间授权登录(无需SDK类似微信登录)(源码+解析)

iOS APP间授权登录(无需SDK类似微信登录)(源码+解析)_第1张图片

  • 这两天做了一个需求,(类似微信等的授权登录)就是手头做的这个项目暂且称之为APP B提供给友商去拉起,提供授权登录的操作,授权成功后返回登录凭证token等信息给APP A处理

1,实现APP间相互调起(查看了相关技术资料,三种实现方式)
2,拉起指定的授权页面
3,应用间数据相互传递

步骤:
应用A_app跳转到应用B_app
1、首先我们用Xcode创建两个iOS应用程序项目,项目名称分别为A_app、B_app。
2、选择项目B_app -> TARGETS -> Info -> URL Types -> URL Schemes,设置B_app的URL Schemes为B_app。
iOS APP间授权登录(无需SDK类似微信登录)(源码+解析)_第2张图片
设置B_app的URL Schemes
3、在应用程序A_app中添加一个用来点击跳转的Button,并监听点击事件,添加跳转代码

//跳转代码
-(void)Click:(UIButton *)btn{
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"B_app://sing?type=1&package_name=com.vistateach.wtepractice"]];
    [[UIApplication sharedApplication] openURL:url];
}

4、在B_app的AppDelegate里

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
//跳转授权页面
    NSString *urlStr = url.absoluteString;
            VistaAuthorizeViewController *vc=[[VistaAuthorizeViewController alloc]init];//VistaAuthorizeViewController是授权页面
            vc.package_name=[urlStr componentsSeparatedByString:@"package_name="][1];
            UINavigationController *naVC = [[UINavigationController alloc]initWithRootViewController:vc];
            self.window.rootViewController = naVC;
        return YES;
}

5、在VistaAuthorizeViewController.m中写上UI
其中包含立即登录按钮 ,在登录事件中 反拉A_app并传值 token

A_app设置
iOS APP间授权登录(无需SDK类似微信登录)(源码+解析)_第3张图片
B_app立即登录点击事件中

-(void)login:(UIButton *)btn{
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"A_app://sing?taken=%@",Token]];
    [[UIApplication sharedApplication] openURL:url];
}

这样B_app就接受到token做相应处理就好了

demo(包含2个APP,A_app申请授权,B_app授权应用)下载地址

你可能感兴趣的:(iOS APP间授权登录(无需SDK类似微信登录)(源码+解析))