如果 app 里面嵌套一个网页实现某一个功能,但网页是需要用户登录才能用。怎么设计这个网页认证?

2015-02-03 17:11:21 +08:00
 niaoren

是要用oauth吗?但是好像不通。

10239 次点击
所在节点    iDev
18 条回复
andy12530
2015-02-03 17:17:20 +08:00
http://bj.ganji.com/shouji/1359794712x.htm

点击『发送到手机』。

你学习一下这个流程
niaoren
2015-02-03 17:23:14 +08:00
@andy12530 没看明白哦。。 我说的是ios应用里面嵌套网页,不同啊。
dong3580
2015-02-03 17:26:30 +08:00
1.oauth2授权?
2.ajax请求登录?
这样可行?
我怎么觉得用什么都可行呀,关键是拿到登录之后的token或者你们要用的cookies.
felixzhu
2015-02-03 17:27:37 +08:00
传一个token就可以了
learnshare
2015-02-03 17:30:19 +08:00
@niaoren 你是只想登录网页,还是想通过登录网页完成 App 的授权登录?

如果只是登录网页,传统的 cookie/session/token 都可以,如果要登录 App,可以参考新浪之类的 oauth 接口
niaoren
2015-02-03 17:32:59 +08:00
@dong3580
@felixzhu

先在APP登录好,得到token,然后在嵌套网页时带过去token,在网页程序根据token得到用户ID存入session,便于网页点击去另外页面认证、是否可行?
cevincheung
2015-02-03 17:33:48 +08:00
app里有个网页

给webview增加js接口(window.app.getUser())。获取失败提示用户登录。获取成功那就继续……
niaoren
2015-02-03 17:42:13 +08:00
@cevincheung 你的意思是网页里面调用objc函数来判断登录?但是那个网页不在webciew里面访问(在Safari)不就有安全问题了吗?
nilennoct
2015-02-03 17:59:01 +08:00
native code登陆后生成一个唯一的token,访问 http://www.xxx.com/auth?token={token}&timestamp={time},在对应的’/auth'这个接口检查登录信息是否合法(token、timestamp等是否合法),然后跳转不同功能页。
cevincheung
2015-02-03 18:12:55 +08:00
@niaoren 你不会判断有没有这个函数啊…… - -#你获取的信息又没有用户名、密码。只是个token验证一下。再不行token的算法还能写在app里跟服务端一致就行。咋不安全了。
dong3580
2015-02-03 18:14:49 +08:00
@niaoren
可行。不过,
token 都有了为什么还要session呢?
felixzhu
2015-02-03 21:37:16 +08:00
@niaoren 可行,不用存session
felixzhu
2015-02-03 21:37:48 +08:00
@niaoren 加一个middleware,直接根据token把用户对象绑定到request就行了
lujiajing1126
2015-02-03 22:17:25 +08:00
客户端登陆。。。然后。。。把token塞给uiwebview。。就好了
niaoren
2015-02-03 22:49:10 +08:00
@dong3580 我的想法是可以让webview里面的页面可以自己点击跳转,跳转后仍然是登录状态
hyzjshwo
2015-02-03 23:05:51 +08:00
Native (post)->web app(login form)->Native(logic eg:save cookies)->web view(set cookies)
dong3580
2015-02-04 01:26:22 +08:00
@niaoren
登录状态可以保存在token里呀,也可以用传统的session
cralison
2015-02-08 09:43:45 +08:00
刚完这个。

打开网页的请求里加token参数,如果没有登录就加空字符,后端判断,如果是空字符就发一个特定url的请求,webview截获这个特定url,调登录界面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/167930

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX