首页 新闻 搜索 专区 学院

关于app,identityserver4的登录页的问题

0
悬赏园豆:5 [已解决问题] 解决于 2020-03-31 22:11

ionic app使用identityserver4登录,登录页是在identityserver服务器上,还是在app建登录页?如果是在identityserver登录页的话,那app启动不得加载页面?能否使用app的登录页,然后登录使用identityserver的接口??

树形图的主页 树形图 | 初学一级 | 园豆:4
提问于:2019-12-17 21:30
< >
分享
最佳答案
0

两个方案:

  1. app使用Authorization Code方式进行认证, 那么就需要app打开一个内嵌的浏览器来打开ids4提供的登陆页面.
  2. app使用用户名+密码方式进行认证, 这就无需ids4提供登陆页面了,调用接口即可.

无论哪种方案, app都需要保存登录后的token在本地的, 这样下次打开app就可以直接用.

收获园豆:5
blackheart | 老鸟四级 |园豆:3592 | 2019-12-17 21:56

请问Implicit 认证模式是什么认证模式?如果app使用identity的登录页,第一次打开应用就要加载登录页,这种体验肯定不好,所有只能使用用户名,密码的方式

树形图 | 园豆:4 (初学一级) | 2019-12-17 22:09

@树形图: implicit是给无法保存第三方客户端的密钥的场景用的,比如运行在浏览器中的纯前端应用(无服务端)。

自家的app,用户名密码还是最合适的。ids4也是直接支持这种模式的。

blackheart | 园豆:3592 (老鸟四级) | 2019-12-17 23:18

@blackheart: 那angular客户端怎么使用登录呢?我在网上找了很多,都是C#客户端的

树形图 | 园豆:4 (初学一级) | 2019-12-18 10:06

@树形图: 这正是implicit模式的用武之地,给你个示例:https://github.com/linianhui/oidc.example 中的http://oidc-client-js.test站点就是这种情况,它是js+html的纯前端应用,没有服务端。和angular/react.js/vue.js等等所写的前端是等价的。

blackheart | 园豆:3592 (老鸟四级) | 2019-12-18 10:11

@blackheart: 用密码模式做验证,被保护的api资源,怎么获取用户信息??怎么知道是谁登陆了?

树形图 | 园豆:4 (初学一级) | 2019-12-19 09:50

@树形图: 账号密码都给你了,你还不知道是哪个用户吗?授权服务器肯定知道啊。 token就是一个token罢了,和其他的授权码,隐式授权得到的token是一样的。调用ids4实现的OAuth2 Token Introspection接口就可以获得token的详细信息,其中就包含用户id。如果你是用的jwt,则jwt里面通常就直接包含用户id(sub claim)了。

blackheart | 园豆:3592 (老鸟四级) | 2019-12-19 10:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册