cloud版本想加入一个小程序

Blade 未结 2 1736

一、该问题的重现步骤是什么?

1. cloud版本想加入一个小程序,有没有相关的例子?看了CaptchaTokenGranter 和SocialTokenGranter 不好拓展?有没有相关的解决方案?

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

2条回答
  • 2021-07-28 16:29

    不好意思,目前还没有相关例子,后续uniapp版本会新增的,还请耐心等候一下。

    在这期间推荐先看下这个帖子:https://blog.csdn.net/qq_20280007/article/details/107388319

    可以参考SocialTokenGranter,获取到小程序的openid后,将其作为username传递,并且取消password认证便可以了,如果登录期间未获取到openid信息,则后端新建一个初始用户并绑定。


    0 讨论(0)
  • 2021-07-28 16:56

    继承 AbstractTokenGrante自己写一个就行了。GRANT_TYPE 自己随便区。

    bladex里面的CaptchaTokenGranter 和SocialTokenGranter都不太好改。


    然后在BladeTokenGranter中add一下。在系统管理中把这个grant_type配上就可以用了。

    就像我们公司就这样实现的苹果app登录

    image.png

    小程序登录和第三方登录其实很相似的。举一反三是可以写出来的。

    本质上都是拿一个code、state,和appid、appsecret去换token

    具体代码因为公司保密协议不方便透露。

    作者追问:2021-07-28 16:59

    实现的部分代码可以给来看看么?卡住两天了

    作者追问:2021-07-28 17:02

    image.pngimage.png

    image.png

    然后posman访问

    image.png

    回答: 2021-07-28 17:59

    抱歉签了保密协议,这个真不能。不过可以给你个思路


    小程序登录和扫码登录只有一点不同:

    扫码,code是前端调用服务端的接口,通过的重定向获得。

    小程序,是直接在小程序那里调用wx.login() 获得code。

    除此之外一模一样。

    具体可以去开发平台看文档。


    然后bladex框架自己实现的第三方登录的配置就不能用了,但是他依赖的JustAuth的实现还是可以用的。如果不知道JustAuth是什么,可以先百度看看。

    自己写个配置读取类,配置小程序的appId和appSecret.


    然后 继承AbstractTokenGrante自己写一个Granter,使用JustAuth第三方登录成功后,就可以用bladex封装的用户模块的代码,将用户数据入库了。


    0 讨论(0)
提交回复