微信实现第三方登录

作者: 忆晨旭 | 来源:发表于2016-09-29 15:33 被阅读3279次

最近项目中需要做一个第三方登录的功能,在此之中自己也是遇到了一个小坑,总得来说操作还是算简单的,但是觉得这个坑有点意思,估计后面也会有人遇见,希望这篇文章会对别人有帮助

1、去微信开放平台下载最新的SDK:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319164&token=791a4d35d71674aedd29bcd3aefab39f198d902d&lang=zh_CN

2、自己创建一个应用,获取到需要的APP ID和APP Secret

3、将SDK中的三个文件导入你需要接入第三方工程中:libWeChatSDK.a,WXApi.h,WXApiObject.h 

4、添加以下依赖库

SystemConfiguration.framework,

libz.dylib,

libsqlite3.0.dylib,

libc++.dylib,

Security.framework,

CoreTelephony.framework。

5、在你的工程文件中选择Build Setting,在Search Paths中添加上面导入的三个文件的路径(如果你的三个文件在一个文件夹里面,那是非诚简单的)

6、在你的工程文件中选择TARGETS 一栏,在info标签栏的URL type添加URL scheme,

到这里,基本上的配置就完成了

下面开始代码部分

为了不在APPDelegate写太多的代码,我自己新建了一个NSObject文件,作为一个单列,在这个单列中有许多的事情都可以在这里做,这样会让你的程序看起来不那么杂乱无章,也方便了我们的管理

当然这里必须得添加微信的头文件 #import "WXApi.h"

WeChatManager.h文件

WeChatManager.m文件

@implementation WeChatManger

#pragma mark - LifeCycle

+(instancetype)sharedManager {

static dispatch_once_t onceToken;

static WeChatManger *instance;

dispatch_once(&onceToken, ^{

instance = [[WeChatManger alloc] init];

});

return instance;

}

- (void)dealloc

{

self.delegate = nil;

}

#pragma mark - WXApiDelegate微信回调

- (void)onResp:(BaseResp *)resp

{

/*微信登录的回调*/

if ([resp isKindOfClass:[SendAuthResp class]])

{

//拿到微信返回的Code

}

}

- (void)onReq:(BaseReq *)req

{

}

/*微信登录调起事件*/

+ (void)sendAuthRequest

{

//构造SendAuthReq结构体

SendAuthReq* req =[[SendAuthReq alloc ] init];

req.scope = @"snsapi_userinfo";

req.openID = @"wxdd13dcdbe6174bcf";

//第三方向微信终端发送一个SendAuthReq消息结构

[WXApi sendReq:req];

}

写好了以上的方法,我们还是要遵循APP Delegate里面的方法的

首先少不了的还是微信的注册

接下来是两个APPDelegate方法的实现

到这里就基本上完成了微信的登录的实现:

现在只需要在你要点击的地方加上 [WeChatManger sendAuthRequest];这句代码就可以实现了,

最后我要说的是我以为到了这里就已经完成了,确实也完成了,但是这是当我运行我的程序的时候我发现这个方法不是直接去违心的客户端授权,而是跳转到了一个网页,这时候还需要用户手动输入自己的手机号才能授权,这样会不会不太好呢,于是我问朋友找方法,终于让我找到了问题的所在:原因就是在iOS 9中苹果公司进行了策略更新,限制了http协议的访问,所以当我们需要使用QQ/QQ空间/支付宝/微信的相关能力的时候,我们需要添加开白名单:

在你工程的info.plist里面添加如下配置:

你要做那个操作的时候添加对应的开白名单就好了,添加完成之后运行就可以跳转到对应的应用中进行授权了

相关文章

  • Python实现微信红包提醒(一)

    Python实现获取微信好友列表信息 安装Python第三方库 登录微信 获取微信好友的列表: Python实现微...

  • iOS 微信第三方登录文档说明

    标签(空格分隔): iOS 我的计划1.使用微信SDK实现微信第三方登录2.使用友盟实现第三方登录3.使用open...

  • iOS-第三方微信登录

    微信第三方登录实现的全过程:iOS微信登录注意事项:1、目前移动应用上微信登录只提供原生的登录方式,需要用户安装微...

  • Laravel 5.1 实现第三方登录认证

    原文地址: Laravel5.1 实现第三方登录认证(包括微博、QQ、微信、豆瓣) 前言 第三方登录认证能简化用户...

  • ShareSDK微信、QQ登录,直接代码可用

    ShareSDK都封装好第三方登录的方法了,非常方便调用,直接拷贝下面的方法,即可实现第三方登录。 1、微信登录方...

  • ShareSDK第三方登录

    给大家分享下第三方登录功能的实现,主要是对QQ 、微信、微博的第三方登录。 1、首先需要注册ShareSDK获取A...

  • APP微信登录

    微信,QQ等第三方登录在在App上很常见,便于用户快速登录。所以这篇文章说的是App如何调用微信登录实现功能;以下...

  • 微信授权注册与登陆

    前段时间公司网站登录注册改版,做了基于微信的第三方授权登录和注册,下面说的是网站应用微信授权实现登录注册,。踩了一...

  • app 第三方登录流程

    1. 第三方登录的两种情况 1. app 调用用 QQ/微信 sdk 实现第三方登录 流程如下: 先在 gradl...

  • Android之第三方平台实现QQ登录和QQ分享

    目前大多数APP都包含了第三方平台的登录,特别是QQ和微信,这篇博客主要讲的是如何实现QQ第三方平台实现QQ登录和...

网友评论

    本文标题:微信实现第三方登录

    本文链接:https://www.haomeiwen.com/subject/qljhjttx.html