微信内网页登录微信
用户通过微信客户端访问你的网页, 通过授权机制获取用户基本信息,实现登录
这里首先要确定的是你只是想得到用户的openid, 还是想得到用户的基本信息比如:昵称和头像等。
我的建议所以,首先自动获取openid, 因为获取openid不需要用户授权操作,也就是用户不知道的情况下就获取了openid,
然后第二步,再申请获取用户头像昵称,获得用户信息。万一用户拒绝,我们也可以分辨出当前是哪个用户。
那么主要就是2步骤:
1. snsapi_base 获取open_id,
2. snsapi_userinfo ,获取
2.1. 网页授权access_token
具体步骤:
第一步
1. 拼接一个 url ,比如:"https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{appid}&redirect_uri=#{return_uri}&response_type=code&scope=#{scope}&state=#{siteid}_#{ref_url}_#{current_user.id}&component_appid=#{com_appid}#wechat_redirect"
appid = 这是我的公众号的appid return_uri = 返回给第三方开发者的地址,这个第三方开发者,也是自助开发的。return_uri = CGI.escape("https://weapp.peicheche.com/appid/#{appid}/callback") scope = snsapi_base, 先获取open_id state = 这里的信息是要回传给 我的网页的。 #siteid-refurl-current_user.id 三部分组成,第一部分是子站点id,第二部分是登录成功后返回url(路径/替换成-),第三部分是当前用户id com_appid = 第三方开发者的appid,也就是服务商的appid,相当是微信平台里面的服务商。
2. 通过我的网页服务器,redirect_to 上面的url. 然后微信会返回到你指定的地址:weapp.peicheche.com/appid/.../callback, 同时会带上一些数据给你。
这里要注意的是如果用的是 snsapi_base, 微信就直接返回,如果是snsapi_userinfo 微信会返回一个授权界面。确认后才会返回,
返回地址:
redirect_uri/?code=CODE&state=STATE。
code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
里面的返回url指向设置的
阅读量: 422
发布于:
修改于:
发布于:
修改于: