使用多个数据库的Web API身份验证

时间:2017-10-05 06:17:15

标签: android mysql authentication asp.net-web-api2 retrofit

我使用MySQL DB创建了一个示例WEB API。其中使用的身份验证是Basic Authentication。身份验证是基于用户的,因为我在其中创建了一个用户表,并将其转换为64位编码并将其与用户的用户名和密码进行匹配。

现在我想创建一个实际的WEB API。 MySQL中有两个数据库。 WEB API将使用数据库1创建。请求将从具有数据库2的Android应用程序发送。现在主要讨论的是Authentication观点。据我所知,Retrofit是Android应用程序开发中最好的身份验证方法之一。现在,对于身份验证,用户信息位于DB1(从中创建应用程序),它将点击在DB2上创建的WEB API。如果数据库是单一的,那么它对我来说不会是一个问题,但只要有两个数据库,所以存在一些问题。

我该怎么办?

  1. 将所有用户数据复制到DB2并生成身份验证。 这一步很简单,但实时用户会更多,所以我必须一次又一次地复制所有数据。

  2. DB2中创建虚拟用户,并在使用时传递所有身份验证。

  3. 在我的WEB API项目中使用两个数据库。使用DB1进行身份验证并验证,验证后再允许访问WEB API。我不确定这种方法是如何工作的。
  4. 任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

我不明白为什么你需要2个API,但是你总是让它们互相交谈,这也意味着更多的API调用,所以你最好有理由使用两个API。

当您获得用户名和密码(或电子邮件)时,您需要尝试将其与您在API中存储的密码相匹配,这样您就可以存储所有用户信息,包括用户名和密码,或者您可以调用身份验证API每当你需要通过http请求验证用户时,这意味着服务器1正在呼叫服务器等待他做出响应,然后在有效身份验证时向用户提供他的响应