database - 应用数据库中的 Evernote 用户

标签 database authentication membership evernote

在您的应用程序数据库中保留(或不保留)Evernote 用户的最佳实践或常用方法是什么?

我应该创建自己的成员(member)系统并创建与 Evernote 帐户的连接吗?

我应该将 Evernote 用户数据(或其中的一部分)存储在我自己的应用程序中,并让用户仅使用 Evernote 登录吗?

最佳答案

总结:您必须保护他们的数据,但如何保护数据取决于您。使用整数 edam_userId 来标识数据。

我认为 API License agreement涵盖条款中的保护:

您同意,在使用 API 时,您不会直接或间接采取或使他人采取以下任何行动:... 1.8.4 规避或修改 Evernote 或 API 采用的任何 key 或其他安全机制;

如果您缓存人们的数据并且您的基于服务器的应用程序缺乏安全性来防止人们查看其他人的数据,那么我认为您很明显违反了该条款。我认为它写得很优雅!

将其与责任条款 1.2 相结合

您对使用您的 key 发生的所有事件负全部责任,无论这些事件是由您还是第三方进行的。

因此,如果您不保护某人的缓存数据而其他用户能够访问它,您将承担明确的责任。

在弄清了您有义务(如您所料)保护人们的数据之后,问题是您如何存储数据?

第 4.3 条非常直接地涵盖了标识符,尽管它有点过时了,因为我们都被迫使用 oAuth - 除了 WebView 之外,没有密码被输入过。但是,移动或桌面客户端应用必须为用户提供一种注销机制,该机制必须从您的应用及其持久存储中完全删除用户名和密码。

对于 Web 应用程序,您甚至无法保存用户名:如果您的应用程序在多用户服务器上作为 Internet 服务运行,则不得请求、查看、存储或缓存登录信息Evernote 用户帐户的名称或密码。

好消息是您可以依赖在 oAuth token 凭据响应中返回给您的 edam_userId 值,如讨论的 here .

当您查看 Data Model ,您可以在用户下看到唯一 ID 并进入 User struct ,请参阅令人放心的定义帐户的唯一数字标识符,在帐户的生命周期内不会更改。

考虑一下后果,因为在登录服务之前无法获得用户 ID,如果您想为人们提供本地登录,则必须将您的本地凭据链接到用户 ID。如果某些人必须输入两次用户名却无能为力,这可能会让他们感到厌烦。

关于database - 应用数据库中的 Evernote 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12531062/

相关文章:

java - Hibernate关联表映射

javascript - React Native - 不变违规 - 试图获取超出范围索引的框架

数据库设计 : Likes table

javascript - 如何使用 casperjs 登录 Instagram

asp.net - 如何通过 web.config 重定向 ASP.NET 中已登录的用户?

.NET 成员(member)资格 - 注册、登录等工作。密码重置没有

mysql - 将 mysql 数据分布到多个磁盘

c# - 如何在我的应用程序中使用基本身份验证?

java - 在服务器上验证 JavaScript 代码

asp.net-membership - ASP.NET 成员(member) - 登录控件 - 文本框焦点