您的位置:首页 > 移动开发 > 微信开发

ios 微信登录

2016-05-27 08:08 495 查看
这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下

一、接入微信第三方登录准备工作。

移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。

在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。(注意)

1、下载iOS微信SDK。

下载地址





2、将SDK放到工程目录中。





3、补充导入一些依赖框架。





4、添加URL Types





5、添加iOS9 URL Schemes.



注意:如果没有做这步的话会出现以下错误.

?
6、iOS9中新增App Transport Security(简称ATS)特性, 主要使到原来请求的时候用到的HTTP,都转向TLS1.2协议进行传输。这也意味着所有的HTTP协议都强制使用了HTTPS协议进行传输。需要在Info.plist新增一段用于控制ATS的配置:

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>




如果我们在iOS9下直接进行HTTP请求是会收到如下错误提示:

?
7、向微信终端程序注册第三方应用,并在第三方应用实现从微信返回

在AppDelegate.m中引入"WXApi.h"头文件,然后写入如下:

?
8、请求CODE

开发者需要配合使用微信开放平台提供的SDK进行授权登录请求接入。正确接入SDK后并拥有相关授权域(scope,什么是授权域?)权限后,开发者移动应用会在终端本地拉起微信应用进行授权登录,微信用户确认后微信将拉起开发者移动应用,并带上授权临时票据(code)。

?
执行完上面那一步后,如果客户端安装了微信,那么就会向微信请求相应的授权,图如下:



还有在实际的使用中我们还要结合需求做一些改变。因为微信授权后access_token(2小时)之类的字段都是有效期的在有效期范围内,我们是没必要让用户再次授权的,很可能你的实现,会如我下面所写的(LoginViewController)

?
当有access_token和openID时输出:

?
刷新access_token有效期:

access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:

1. 若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间;
2. 若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。

refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。

让AppDelegate遵守<WXApiDelegate>协议,并实现协议方法onResp:

我们在该方法中接收请求回来的数据,如下:

?
?
?
9、通过code获取access_token

通过上一步获取的code后,请求以下链接获取access_token:

?
相关代码上面实现onResp:方法,接收返回的响应。

参数说明:

参数 是否必须 说明

appid 是 应用唯一标识,在微信开放平台提交应用审核通过后获得

secret 是 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得

code 是 填写第一步获取的code参数

grant_type 是 填authorization_code

返回说明:

?
错误返回样例:

{"errcode":40029,"errmsg":"invalid code"}

10、获取用户个人信息(UnionID机制)

?
?
返回的Json结果:

?
11、最后

做到上面一步就应该得到返回微信的基本信息,然后根据你公司后台的基本需求去实现授权后如何登录App.

资料:

?
12.这是我司需求的做法:

1.首先获取到微信的openID,然后通过openID去后台数据库查询该微信的openID有没有绑定好的手机号.

2.如果没有绑定,首相第一步就是将微信用户的头像、昵称等等基本信息添加到数据库;然后通过手机获取验证码;最后绑定手机号。然后就登录App.

3.如果有,那么后台就返回一个手机号,然后通过手机登录App.

以上就是本文的全部内容,希望对大家的学习有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: