起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3919|回复: 4

[用户待确认] 牛刀如何提供临时登录凭证code?第三方服务里的getOpenid能用么?

[复制链接]

369

主题

830

帖子

1599

积分

金牌会员

Rank: 6Rank: 6

积分
1599
QQ
发表于 2019-5-26 17:00:30 | 显示全部楼层 |阅读模式
如何获取用户openid,微信文档https://developers.weixin.qq.com ... /api/api-login.html。牛刀如何提供临时登录凭证code?第三方服务里的getOpenid能用么?

10

主题

897

帖子

1909

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1909
QQ
发表于 2019-5-27 14:40:06 | 显示全部楼层
本帖最后由 007slm 于 2019-5-27 17:00 编辑

牛刀已经提供了组件 完成微信小程序登录 微信小程序支付 小程序模板消息 以及微信运动。按照微信的文档 你只需要关系业务逻辑 和 业务的用户id即可。不需要关注底层逻辑。

如果需要深入细节 可以参考 微信模板消息的源码 里面有根据自定义登录态查询openid的逻辑。
//通过userId获取用户的openId

//http://localhost:8080/uaa/Users?filterShadowUser=false&filter=real+eq+“1dfa3f38-29c8-4432-ac0f-86c937ffe630“+and+data2+eq+“miniapp“
表存储结构如下
在users表中
会有一条记录代表平台提供的用户,其中id为通过用户组件获取的id,username一般为u1 u2等形式
同时会有一或者多条记录对应微信不同端的用户信息
例如 小程序登录的用户
会有一条记录 real的值对应平台用户id,这条记录中username的值存储的是微信小程序的openid,externalId存储的是微信小程序的unionid或者openid(unionid获取不到的场景) ,data1记录的是小程序的appid,data2记录的是端的类型 例如小程序为miniapp
同理 公众号登录
会有一条记录 real的值对应平台用户id,这条记录中username的值存储的是微信公众号的openid,externalId存储的是微信公众号的unionid或者openid(unionid获取不到的场景) ,data1记录的是公众号的appid,data2记录的是端的类型 例如公众号为mpapp





qq上找我时候,不要问我在不,直接发问题,我看到后会去论坛回复你的帖子。
回复 支持 反对

使用道具 举报

369

主题

830

帖子

1599

积分

金牌会员

Rank: 6Rank: 6

积分
1599
QQ
 楼主| 发表于 2019-5-27 18:33:25 | 显示全部楼层
007slm 发表于 2019-5-27 14:40
牛刀已经提供了组件 完成微信小程序登录 微信小程序支付 小程序模板消息 以及微信运动。按照微信的文档 你 ...

有方便实施的方案么,比如我怎么能从users表中取到real记录中的username?或者我怎么能看到模板消息组件的源码并且复制查询openid的逻辑?
回复 支持 反对

使用道具 举报

10

主题

897

帖子

1909

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1909
QQ
发表于 2019-5-28 17:10:11 | 显示全部楼层
在服务中的请求中添加一个参数 ,
openid.png
X-Session-OpenID这个值就是当前登录用户的openid。
使用.png

例子代码如下:

  1. <service filepath="service/main/a.service.m">
  2.         <label language="zh_CN">a</label>
  3.         <uses />
  4.         <action xmlns="http://www.justep.com/model" name="b">
  5.                 <label language="zh_CN">b</label>
  6.                 <param>
  7.                         <field label="openid" paramType="RequestHeader"
  8.                                 name="miniapp_openid" dataType="String" requestType="basic"
  9.                                 requestName="X-Session-OpenID" defaultValue="" />                        
  10.                 </param>
  11.                 <reply>
  12.                         <field name="result" dataType="String" resultType="basic" />
  13.                 </reply>
  14.                 <http>
  15.                         <request url="/b" method="GET">
  16.                                 <param kind="RequestHeader" name="miniapp_openid"
  17.                                         requestName="X-Session-OpenID" />
  18.                         </request>
  19.                 </http>
  20.                 <exception />
  21.         </action>
  22. </service>
复制代码




qq上找我时候,不要问我在不,直接发问题,我看到后会去论坛回复你的帖子。
回复 支持 反对

使用道具 举报

369

主题

830

帖子

1599

积分

金牌会员

Rank: 6Rank: 6

积分
1599
QQ
 楼主| 发表于 2019-5-29 10:34:18 | 显示全部楼层
这个是什么的源码?登录组件的么?没看明白。而且在ide中看到的源码是一长行,根本没办法编辑。我是通过写前端获取到临时凭证code再通过后端写方法也能获取到openid,请问这样会不会有什么问题?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-24 11:03 , Processed in 0.096970 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表