微信授权登录

第一步:用户同意授权,获取code 

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx5b6e96c8c89c614e&redirect_uri=http://s14k870241.iask.in/index.html&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
#返回url:http://s14k870241.iask.in/index.html?code=001OWsKC0kQWLc2tpINC0j7lKC0OWsKC&state=STATE


第二步:通过code换取网页授权access_token

#code只能调一次该接口,且成功后原来的access_token会失效
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx5b6e96c8c89c614e&secret=xxxxxxxxx&code=001OWsKC0kQWLc2tpINC0j7lKC0OWsKC&grant_type=authorization_code
返回JSON:
{
    "access_token": "5_pEk49UifMKmep3FScEy5XCuAaITXE4wOEXYstu_4sFqY2B0S280ujUs1ZwzHE-iBTVUNQj33BZWlH0WE0k9kFQ",
    "expires_in": 7200,
    "refresh_token": "5_BqSz9Og718SV8igq-esLP2jYvl-_e_GIqH-ti8eAwOutRyylX1zIfjOUx_VJFlftJfEO8Md_J2q5PT7pJOrOBA",
    "openid": "ob8F-wFENFWw7_FR6Gx8KbPacFEw",
    "scope": "snsapi_base",
    "unionid": "oTpR9xAIiebFOc6p04tMTaLhviCQ"
}

第三步:刷新access_token

#(如果需要)由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wx5b6e96c8c89c614e&grant_type=refresh_token&refresh_token=5_BqSz9Og718SV8igq-esLP2jYvl-_e_GIqH-ti8eAwOutRyylX1zIfjOUx_VJFlftJfEO8Md_J2q5PT7pJOrOBA
返回JSON:
{
    "openid": "ob8F-wFENFWw7_FR6Gx8KbPacFEw",
    "access_token": "5_pEk49UifMKmep3FScEy5XCuAaITXE4wOEXYstu_4sFqY2B0S280ujUs1ZwzHE-iBTVUNQj33BZWlH0WE0k9kFQ",
    "expires_in": 7200,
    "refresh_token": "5_BqSz9Og718SV8igq-esLP2jYvl-_e_GIqH-ti8eAwOutRyylX1zIfjOUx_VJFlftJfEO8Md_J2q5PT7pJOrOBA",
    "scope": "snsapi_base,snsapi_userinfo,"
}

第四步:拉取用户信息(需scope为 snsapi_userinfo)

https://api.weixin.qq.com/sns/userinfo?access_token=5_pEk49UifMKmep3FScEy5XCuAaITXE4wOEXYstu_4sFqY2B0S280ujUs1ZwzHE-iBTVUNQj33BZWlH0WE0k9kFQ&openid=ob8F-wFENFWw7_FR6Gx8KbPacFEw&lang=zh_CN
返回JSON:
{
    "openid": "ob8F-wFENFWw7_FR6Gx8KbPacFEw",
    "nickname": "李玉长",
    "sex": 1,
    "language": "zh_CN",
    "city": "怀化",
    "province": "湖南",
    "country": "中国",
    "headimgurl": "http://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJ6xHJunSibZQaQV3SvLfJtluniatYJ1s0IvPpLq06frM6X8MNbgicPMdKoL2jiaehmnOp8aPwG0Io6pQ/132",
    "privilege": [],
    "unionid": "oTpR9xAIiebFOc6p04tMTaLhviCQ"
}

思考:整个应用其实只需用户手动点一次微信登录授权即可,以后都可以用snsapi_base方式静默跳转只获取openid实现登录。

转载于:https://my.oschina.net/u/3656540/blog/1605648

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值