对错误的格式支持

发布于 2024-10-22 12:23:43 字数 749 浏览 2 评论 0原文

我正在开发一个应用程序,该应用程序使用从其他系统接收的数据创建公司日历(它是更大的 J2EE 应用程序的一部分,对于日历导出,我使用 ical4j)。客户要求之一是将“秘密令牌”放入日历同步链接中,以便能够重置它以使之前生成的日历同步链接无法使用。换句话说,它的工作原理如下:

  • 用户单击“导出链接”按钮,他/她会看到日历同步的链接(可以复制粘贴到 iCal、谷歌日历等)。该链接如下所示:(

服务器/常量部分)+用户名+密码(随机,每个用户唯一的令牌)

  • 用户复制它并与他/她的手机/其他日历阅读器执行日历同步

  • 在每次同步请求之后(每次手机向服务器请求日历同步),应用程序都会检查请求中的令牌是否与数据库中存储的令牌匹配(如果令牌有效) ),如果是 - 返回日历(*.ics 文件)。

  • 例如,如果手机被盗,用户可以重置此秘密令牌,并且如果手机向服务器请求日历同步,则请求中的令牌和数据库中的令牌将不同,并且不会返回任何日历。

我的问题是,是否有可能(iCalendar 格式支持或任何其他方式)向用户显示错误(或让他们知道出了问题)。我的意思是,当用户尝试使用错误/过期的令牌同步日历时,他/她会看到的所有内容(在 Thinderbird + Lightning 中测试)都是相同的旧日历 - 没有错误,没有任何更新的信息,等等(我唯一能做的就是get 是服务器上的日志条目)。一些半解决方案是发送空日历,但它看起来更像是“黑客”而不是真正的解决方案。

感谢您的任何帮助。

I'm developing an application that creates company calendar with data recived from other systems (it's a part of bigger J2EE app, for calendar export I'm using ical4j). One of client requirements was to put 'secret token' into calendar sync link in order to be able to reset it to make previously generated links for calendar sync unuseable. In other words it works like this:

  • user clicks 'export link' button and he/she see the link for calendar sync (that can be copy-pasted into iCal, google calendar, etc). The link looks as follow:

(server/constant part) + userName + secret code (random, unique-per-user token)

  • user copy it and perform calendar sync with his/her phone/other calendar reader

  • after each sync request (each time phone is asking server for calendar sync) application checks if token from request matches one stored in database (if token is valid), and if yes - calendar (*.ics file) is returned.

  • if, for example, phone is stolen, user is able to reset this secret token, and if phone asks server for calendar sync and token from request and from database would be different and no calendar would be returned.

My question is, is there a possibility (iCalendar format support or any other way) to displaying errors to user (or to let them know something went wrong). I mean, when user try to sync calendar with wrong/expired token, all he/she would see (tested in thinderbird + lightning) is the same old calendar - no error, no info that nothing was updated, etc (only thing I can get is log entry on server). Some semi-solution would be to send empty calendar, but it looks more like 'hack' than real solution.

Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

西瑶 2024-10-29 12:23:43

那么,您可以发送 401 Unauthorized HTTP 响应(带有新的领域字符串),这可能会导致客户端(再次)显示密码对话框。

(如果不尝试,我不确定 403 Forbidden 在 Lightning 中是否有任何有用的作用。)

Well, you could send a 401 Unauthorized HTTP response (with a new realm string), which might cause the client to show the password dialog (again).

(I'm not sure without trying if 403 Forbidden does anything useful in Lightning.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文