应用程序数据库中的Evernote用户

时间:2012-09-21 12:57:26

标签: database authentication membership evernote

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

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

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

2 个答案:

答案 0 :(得分:1)

摘要:您必须保护自己的数据,但 保护数据取决于您自己。使用整数edam_userId来标识数据。

我认为API License agreement涵盖了以下术语中的保护:

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

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

将其与责任条款1.2

结合起来

您对使用密钥发生的所有活动负全部责任,无论此类活动是由您还是第三方承担。

因此,如果您不保护某人的缓存数据而另一位用户能够获取该数据,那么您将明确承担责任。

在澄清了你的义务(正如你所期望的)保护人们的数据之后,问题是你如何存储它?

第4.3条非常直接地涵盖了标识符,虽然现在我们都被迫使用了oAuth,但是有一些没有密码已经输入到其他任何Web视图中。但是,移动或桌面客户端应用程序必须为用户提供注销机制,这必须从应用程序及其持久存储中完全删除用户名和密码。

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

好消息是,您可以依赖oAuth令牌凭据响应中返回给您的edam_userId值,如上所述here

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

考虑后果,因为在登录服务之前无法获得用户ID,如果要为人们提供本地登录,则必须将本地凭据链接到用户ID。如果他们必须输入两次用户名但无法帮助,那可能会让一些人感到不舒服。

答案 1 :(得分:0)

您可以允许用户通过OAuth登录。这是关于该过程如何工作的guide

但您可能还希望在数据库中存储最少量的用户数据,至少是唯一的标识符,这样您就可以创建用户与其笔记本和标签之间的关系。有关这些关系,请参阅Evernote data model。如果您使用的是rails,这也可以帮助您利用rails约定。