ionic app使用identityserver4登录,登录页是在identityserver服务器上,还是在app建登录页?如果是在identityserver登录页的话,那app启动不得加载页面?能否使用app的登录页,然后登录使用identityserver的接口??
两个方案:
无论哪种方案, app都需要保存登录后的token在本地的, 这样下次打开app就可以直接用.
请问Implicit 认证模式是什么认证模式?如果app使用identity的登录页,第一次打开应用就要加载登录页,这种体验肯定不好,所有只能使用用户名,密码的方式
@树形图: implicit是给无法保存第三方客户端的密钥的场景用的,比如运行在浏览器中的纯前端应用(无服务端)。
自家的app,用户名密码还是最合适的。ids4也是直接支持这种模式的。
@blackheart: 那angular客户端怎么使用登录呢?我在网上找了很多,都是C#客户端的
@树形图: 这正是implicit模式的用武之地,给你个示例:https://github.com/linianhui/oidc.example 中的http://oidc-client-js.test站点就是这种情况,它是js+html的纯前端应用,没有服务端。和angular/react.js/vue.js等等所写的前端是等价的。
@blackheart: 用密码模式做验证,被保护的api资源,怎么获取用户信息??怎么知道是谁登陆了?
@树形图: 账号密码都给你了,你还不知道是哪个用户吗?授权服务器肯定知道啊。 token就是一个token罢了,和其他的授权码,隐式授权得到的token是一样的。调用ids4实现的OAuth2 Token Introspection接口就可以获得token的详细信息,其中就包含用户id。如果你是用的jwt,则jwt里面通常就直接包含用户id(sub claim)了。
@blackheart: 我想了解下你的第一个方案是app怎么获取到token或者说authorizecode呢?
@blackheart: 能不能只通过httpapi的调用获得token,得到authorize token之类的
@心雨纷扬:
问题1:
app调起浏览器,用户通过浏览器完整认证,然后浏览器再携带authorizecode重定向到app。
问题2: