app端,网页端的三方登陆,需要申请相关的token或者id什么的
网页微信登录
第一步,用户同意,获取code,这一步,就是让用户点击“
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect”
然后如果用户授权同意,微信就会跳转到你设置的
redirect_uri
然后会带上code参数,这样你就可以在redirect_uri里面获取到code
code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
第二步,通过code获取access_token
请求https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code返回的参数有:
参数 | 是否必须 | 说明 |
---|---|---|
appid | 是 | 公众号的唯一标识 |
secret | 是 | 公众号的appsecret |
code | 是 | 填写第一步获取的code参数 |
grant_type | 是 | 填写为authorization_code |
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE", "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }第三步:获取用户的信息
请求方法
http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN正确时返回的JSON数据包如下:
{ "openid":" OPENID", " nickname": NICKNAME, "sex":"1", "province":"PROVINCE" "city":"CITY", "country":"COUNTRY", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }然后就把姓名,性别,头像写进数据库,登录了
我这里写的是网页微信授权登录,如果是app其实也没多大差别,app端可以获得到AccessToken和appid,然后传到服务端,服务端就直接验证这个access——token是否有效就行了,其实没有什么好做的。
http:GET(请使用https协议) https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID返回的参数:
正确的Json返回结果:
{ "errcode":0,"errmsg":"ok"}错误时的Json返回示例:
{ "errcode":40003,"errmsg":"invalid openid"}
如果,errmsg是“ok”就让它登录。