微信登录

前几天给网站做了一个微信登录 总结了一下 以及注意的地方分享给大家

在我们网站的登录页面当然得有一个微信登录的图标,这个图标的链接地址是访问的微信服务器 https://open.weixin.qq.com/connect/qrconnect?

这个URL是有参数的需要我们去构建一个完整的url 

第一个参数 appid 这个参数值老板会告诉你的不用担心

第二个参数 redirect_uri 这个参数是微信将会访问的地址 也就是说微信用户扫描了二维码 授权登录后微信服务器将以GET的方式请求这个参数值 这个参数必须UrlEncode处理一下

第三个参数 response_type 填code即可

第四个参数 scope 填写snsapi_login即可

第五个参数 state 这个参数不是必须的 这个参数等微信服务器请求 redirect_uri  的时候还会给我们传过来的 起到一个校验作用

示例:https://open.weixin.qq.com/connect/qrconnect?appid=wx3235cf3314e21199&redirect_uri=http%3a%2f%2fwww.codecome.cn%2fsso%2flogin&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect

上面这个地址  微信服务器将会返回一个二维码 让用户扫描 等用户授权登录以后 微信服务器将请求 redirect_uri  里的参数值 这次请求会带上两个参数 code 和 state

示例:http://www.codecome.cn/sso/login?code=04130de02413f26dc953cd61c9d0a80y&state=STATE

接受code 这个code值很重要 继续请求微信服务器 获得access_token 和 openid

示例:https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx3235cf3314e21199&secret=3714b68338bb9b642dc67c86ccce6cbf&code=011e48431c69fec1d948e77a46dc74aS&grant_type=authorization_code

appid 参数老板会告诉你的

secret 参数老板也会告诉你的 是一个秘钥

code 参数就是上面那个code

grant_type 参数填authorization_code

这个网址返回的就是一坨Json 里面包装了 access_token 和 openid 

这个openid就是每一个微信用户的唯一标识

上面的步骤走下来没有问题的话 接下来就事如何实现微信登录

我们的逻辑是 如果用户之前在我们网站注册过 则需要登录网站并绑定微信 如果用户之前没有在我们网站注册过则需要用户注册并绑定微信

想法有了 那就干吧 首先

上面那个 redirect_uri  就是用户授权收跳转的页面 也就是我们的登录页面

这个时候就已经根据code 拿到openid了一开始需要登录网站并绑定微信 然后将openid插入到user表

此时user和这个微信用户就绑定到一起了 下次只要扫描二维码就可以直接登录了

注册类似

 

你可能感兴趣的:(微信登录)