分享:个人 APP(非企业资质)的微信登录方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
huanggan
V2EX    程序员

分享:个人 APP(非企业资质)的微信登录方案

  •  
  •   huanggan
    YellowDoing 2019-08-27 09:57:16 +08:00 2769 次点击
    这是一个创建于 2317 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前微信开放平台个人主体类 APP 不支持开通微信登录,那么个人开发者如何解决微信登录的问题呢?目前有一种替代方案是用微信小程序作为媒介来达到微信登录的目的。

    image

    微信小程序的登录无需企业资质,同时登录后返回以下信息

    • 用户唯一标识 open_id
    • 头像
    • 昵称

    并且微信小程序支持被 APP 打开,执行操作后再返回数据。

    所以目前的思路是通过 APP 跳转微信小程序再回传来实现微信登录

    实现前提条件

    • 微信开放平台账号(个人类)
    • 在开发平台下创建 APP 并审核通过
    • 已上线一个微信小程序
    • 在开放平台绑定该微信小程序
    • APP 和小程序关联

    当然没有上线的微信小程序也可以,有小程序 id 即可,但只能进行测试

    以安卓 APP 为例,集成微信 SDK 初始化后,设置小程序原始 id 来跳转小程序,可以传递参数给小程序

    String appId = "......."; //此处为 AppId final IWXAPI api = WXAPIFactory.createWXAPI(this, appId); api.registerApp(appId); findViewById(R.id.wx_login).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req(); req.userName = "gh_f1312c106dff"; // 填小程序原始 id req.path = "pages/index/index?appLogin=1"; //拉起小程序页面的可带参路径,不填默认拉起小程序首页,对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 "?foo=bar"。 req.miniprogramType = WXLaunchMiniProgram.Req.MINIPROGRAM_TYPE_TEST;// 可选打开 开发版,体验版和正式版, api.sendReq(req); } }); 

    小程序被调起后会在 onLoad 方法接收到参数,再调用 wx.login 方法获取 js_code,再通过 js_code 拿 open_id

    onLoad(options) { if (options.appLogin){ wx.login({ success: res => { // 发送 res.code 到后台换取 openId, sessionKey, unionId } }) } }, 

    再通过 button 的 open-type="getUserInfo"可弹起登录申请获取用户信息,然后再返回 APP 客户端即可

    微信相关文档

    https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/Launching_a_Mini_Program.html

    顺便推个公众号,不感兴趣的同学可以跳过

    image

    《 IT 独立开发者》帮助程序员拓展产品、运营、设计等思维能力,开发独立产品,致力成为自由职业者,实现财富自由

    目前尚无回复
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3480 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 04:26 PVG 12:26 LAX 20:26 JFK 23:26
    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