首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
开发APP项目,JFinal实现后端服务,提供rest 接口,有没有借鉴的权限方案?
小飞象
2017-03-09 16:57
后端由JFinal实现Rest服务接口,APP调研接口,权限这块有好的思路或借鉴方案吗?
项目:
JFinal
5
3
评论区
JFinal
2017-03-09 17:09
参考一下微信公众平台的设计方案就挺好,大致如下:
1:客户端通过用户名与密码先向服务端获取一个标识该用户的 accessToken 值
2:accessToken 值具有一定的使用时限,例如,微信平台是 7200 秒,过期后需要再次发起请求来获取 accessToken
3:客户端与服务端所有通信处于 https 通道之下,防止被监听
客户端的具体实现参考一 jfinal weixin 中有关获取 accessToken 的实现,服务端实现跟登录功能差不多,只不过登录成功后返回的那个 accessToken 有使用时限
服务端权限管理参考一下俱乐部专享项目 jfinal-club 中的拦截器,数据响应使用 jfinal 的 renderJson 即可
回复
旅杰
2019-05-14 09:22
jfianl框架对于app项目的开发支持度好吗
回复
liugz
2019-09-20 23:59
@JFinal
看到您第2条的回复 ”accessToken 值具有一定的使用时限,例如,微信平台是 7200 秒,过期后需要再次发起请求来获取 accessToken”, 这个一般如何实现的?
比如:用户在app上填写一个表单时,accessToken过期了,需要用户重新录入用户名密码获取accessToken吗, 这样体验会不好吧
微信服务号开发里,是将id和密钥存放到配置文件中,如果token过期,那么可以通过id和密钥再获取一次token,但在app上要如何弄没太想明白
回复
JFinal
2019-09-21 10:37
@liugz
在每次获取 AccessToken 对象时判断一下它是否有效,无效则重新获取,这里有源码:
https://gitee.com/jfinal/jfinal-weixin/blob/master/src/main/java/com/jfinal/weixin/sdk/api/AccessTokenApi.java
getAccessToken() 调用了 getAvailableAccessToken(...),而这个方法内部的判断:
if (result != null && result.isAvailable())
如果判断为 false,上层 getAccessToken() 方法中会得到一个 null 值,随后在 synchronized 块中调用了 refreshAccessToken(...) 去远程微信服务获取新的 accessToken 值
回复
liugz
2019-09-21 13:38
@JFinal
波总 这个逻辑没问题,能看懂。 refreshAccessToken()这个方法还是要根据配置文件中的appId和appSecret再去更新token。
问题是:如果用户在界面上填表单,假如token过期了,界面上不能存用户的密码吧,也不能要客户再填一次密码登录吧。 那要如何获取新的token呢?
我在网上看了很多说是登录后保存token和refreshToken,https://www.cnblogs.com/minirice/p/9232355.html
回复
JFinal
2019-09-21 17:14
@liugz
jfinal weixin 项目只涉及后端获取 access token, 用户在界面上填表单不涉及这个事
回复
发送
我要反馈
热门反馈
扫码入社
1:客户端通过用户名与密码先向服务端获取一个标识该用户的 accessToken 值
2:accessToken 值具有一定的使用时限,例如,微信平台是 7200 秒,过期后需要再次发起请求来获取 accessToken
3:客户端与服务端所有通信处于 https 通道之下,防止被监听
客户端的具体实现参考一 jfinal weixin 中有关获取 accessToken 的实现,服务端实现跟登录功能差不多,只不过登录成功后返回的那个 accessToken 有使用时限
服务端权限管理参考一下俱乐部专享项目 jfinal-club 中的拦截器,数据响应使用 jfinal 的 renderJson 即可