第三方登录说明

Demo

一、微信登录说明

1.端内向微信请求信息,取到微信客户端返回信息:

{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}

2.服务器拿到这些信息向微信服务器请求获取unionId,请求地址:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

拿到的结果为:

{
"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"
}unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

说明:其中其中unionId是服务器针对此开发者账户来说唯一,服务器用此id作为微信账户在自己平台的唯一标识(如果该开发者账户有多个应用,可以做到服务器后台统一)。

备注:开发者平台

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317853&token=&lang=zh_CN

二、QQ登录

1.端内向服务器请求,从QQ客户端得到:

{
"ret":0,
"pay_token":"xxxxxxxxxxxxxxxx",
"pf":"openmobile_android",
"expires_in":"7776000",
"openid":"xxxxxxxxxxxxxxxxxxx",
"pfkey":"xxxxxxxxxxxxxxxxxxx",
"msg":"sucess",
"access_token":"xxxxxxxxxxxxxxxxxxxxx"
}

2.服务器客户端发送的数据后,向qq后台请求unionId

https://graph.qq.com/oauth2.0/me?access_token=ACCESSTOKEN&unionid=1

返回(注意不是json)

callback({

      "client_id":"YOUR_APPID",
      "openid":"YOUR_OPENID",
      "unioid":"YOUR_UNIONID"
});

同样,unionId作为qq账号在自己平台的唯一标识。

三.封装微信和qq,向服务器汇报时数据统一为:

public class LoginAuthBean implements UnProguard{
    public LoginType fromType;//微信、qq
    public String accessToken;
    public String openId;
    public long    expire;

    public LoginAuthBean(LoginType type) {
        this.fromType = type;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值