前端段分离项目 微信授权登录问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
leefly
V2EX    程序员

前端段分离项目 微信授权登录问题

  •  
  •   leefly 2016-06-21 19:14:57 +08:00 12990 次点击
    这是一个创建于 3477 天前的主题,其中的信息可能已经有所发展或发生改变。
    如何获取用户信息以及配置信息
    12 条回复    2016-10-01 11:19:27 +08:00
    chineselittleboy
        1
    chineselittleboy  
       2016-06-21 19:28:41 +08:00 via Android
    用户信息文档里有接口 配置信息什么鬼
    momou
        2
    momou  
       2016-06-21 20:02:35 +08:00
    后台获取后传给前端,微信授权后有一个跳转地址,你在这个页面获取就可以了
    XianZaiZhuCe
        3
    XianZaiZhuCe  
       2016-06-21 20:04:47 +08:00 via iPhone
    微信文档写的很清楚哦
    cloverstd
        4
    cloverstd  
       2016-06-21 21:14:00 +08:00   2
    如果你是 SPA ,并且 index.html 给后端托管的话,由后端进行微信微信的 OAuth 认证,然后生成 token 写入 index.html 里,然后 Javascript 再通过 token 获取用户信息

    如果你的 index.html 没有后端托管,那么每个 API 请求,都由后端来判断是否 OAuth 认证的,可以依赖于 session ( cookie ),这样最简单,然后前后端定好规则,比如后端返回 code 为 2 时表示要微信认证,并且 data 里包含认证的 URL (也可以直接是微信 OAuth 的地址),然后回调到后端某个地址(设好 cookie ),再 redirect 到 index.html 这个地址上来
    wakiki
        5
    wakiki  
       2016-06-21 21:56:53 +08:00 via Android
    做过 qq ,微博,微信的授权登录, modal 里嵌 iframe 看起来挺 nice 的,登录完后端的管理页面给前端页面跨站 postMessage, 就微信事多把父窗口也要跳转
    ayaseangle
        6
    ayaseangle  
       2016-06-22 01:10:58 +08:00
    感觉可以使用 jssdk 了。。
    66beta
        7
    66beta  
       2016-06-22 08:21:09 +08:00
    jssdk ,后端出接口给你签名信息
    zkm890520
        8
    zkm890520  
       2016-09-30 23:30:39 +08:00
    @cloverstd 刚好遇到这个问题,兄台,我还是不理解你说的怎么做.... 我这边前端使用 vue.js,后端使用 php 的 laravel,按照你说的我也是 SPA 且 index.html 也没有给后端托管. 但是我想的是前端检测 localstore 有没有相信的 wechat_user 信息且没过期,不符合我就请求后端,然后后端就发给前端一个微信网站授权认证地址,接着前端就转到那个授权页面,回调地址写 后端 的.这时候认证完我怎么把后端认证完的 wechat_user 丢给前端.
    因为问题就是我已经从前端对应的网址跳到微信服务器对应的授权网址再到后端地址,已经不知道前端谁是谁了
    cloverstd
        9
    cloverstd  
       2016-09-30 23:37:19 +08:00
    @zkm890520
    假如你的前端是 http://hui.lu/1.html
    然后你的微信回调是 http://hui.lu/callback
    然后你拼接到微信的地址是 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://hui.lu/callback&response_type=code&scope=SCOPE&state=1#wechat_redirect

    注意其中的 state=1 微信回调时会带上这个,你可以通过这个知道你的前端是 1.html
    zkm890520
        10
    zkm890520  
       2016-10-01 00:25:22 +08:00
    @cloverstd 我说的前端不知道是谁,是指我从 前端.域名.com(localstore 没任何 wechat 的数据,在这里充当 session 的作用),向后端.域名.com/article/list 请求数据. 但是突然发现没有用户信息.
    我就只能去从前端向后端发起一个需要微信授权认证的请求. 后端就告诉我网址 -> https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://hui.lu/callback&response_type=code&scope=SCOPE&state=1#wechat_redirect ,但是这个时候我的前端页面不就会跳到微信的授权页面么.接着再跳到那个 http://hui.lu/callback 授权认证地址. 经过一系列步骤后,我的后端得到了 openid....
    但是这个时候,因为我是前后端分离,也就是说我的前端不是 php 街西城 html 的,或者说前后端的网址可以是这样
    前端: front.xxxx.com
    后端: api.xxxx.com
    我就不知道通过什么方法将我的道德 openid 交给前端.
    是直接 front.xxxx.com?openid=myopenid...给么
    cloverstd
        11
    cloverstd  
       2016-10-01 07:26:59 +08:00 via iPhone
    @zkm890520 后端放 cookie 呀
    你前端不用知道是谁,前端只用发请求,你的后端根据 cookie 判断 openid ,然后再给对应的信息
    zkm890520
        12
    zkm890520  
       2016-10-01 11:19:27 +08:00 via Android
    @cloverstd 哦哦!知道了,多谢兄台,国庆快乐
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3296 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 11:13 PVG 19:13 LAX 03:13 JFK 06:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86