iOS微信授权登录+Universal Link(通用链接)
微信平台
Univac
后台需求
踩坑
1、iOS 配置微信SDK,需要唤醒微信App
先配置json文件,把文件apple-app-site-association,放置在服务器的根目录,然后让他提供一个https的url地址,格式是“正式域名/apple-app-site-association”,如:https://www.baidu.com/apple-app-site-association
。
如果后台提供的url地址是
https://www.baidu.com/apple-app-site-association
。那么,
Associated Domains
中填写applinks:www.baidu.com
,
代码注册方法及微信开放平台中都填https://www.baidu.com/
{
"applinks": {
"apps": [],
"details": [
{
"appID": "teamID.BundleID",
"paths": [ "/support/*" ]
}
]
}
}
2、微信SDK返回来的code 每次都不一样。
- 方法1
后台服务器可以自己通过code 和微信配置通过2个接口自己获取UnionID - 方法2
App自己通过2个接口获取UnionID
获取 UnionID 的2个接口
// 通过 code 获取 access_token 和 openid
// appid 微信配置识别号
// secret 微信配置密钥
// code 微信SDK返回
// grant_type 填 authorization_code
GET https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
// access_token 接口调用凭证
// openid 授权用户唯一标识
{
"access_token": "ACCESS_TOKEN",
"expires_in": 7200,
"refresh_token": "REFRESH_TOKEN",
"openid": "OPENID",
"scope": "SCOPE"
}
// 获取用户个人信息(UnionID 机制)
// access_token openid 上个接口获取
GET https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
// nickname 普通用户昵称
// sex 普通用户性别
// province 普通用户个人资料填写的省份
// city 普通用户个人资料填写的城市
// country 国家,如中国为 CN
// headimgurl 用户头像
// unionid 用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的 unionid 是唯一的。
{
"openid": "OPENID",
"nickname": "NICKNAME",
"sex": 1,
"province": "PROVINCE",
"city": "CITY",
"country": "COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege": ["PRIVILEGE1", "PRIVILEGE2"],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
网友评论