我有一个网站和我自己的服务器和数据库,我也有一个本地的安卓应用程序。我需要让用户能够登录与他们的帐户从网站内的应用程序,以同步信息和其他东西,他们需要使用。我已经被困了好几天,想弄清楚怎么做。我发现了很多关于OAuth和AppAuth的内容,但他们专注于使用OAuth API来完成工作。回到我的服务器,我使用Hybridauth进行社交登录,但用户也可以直接在站点上注册。如何才能让我的用户通过Android应用程序登录到他们的网站帐户?
你想太多了。OAuth不是为了让用户登录,而是为了让外部服务代表用户访问数据。
让用户登录?在名为login的web服务上创建一个POST端点。它应该有两个参数——用户名和密码。登录服务的主体应该对密码进行盐化和散列处理,然后检查该散列是否等于为同一用户存储在db中的散列。如果是,您就登录了,并返回一个成功数据包,其中包含一个惟一令牌,用于对您进行身份验证,以便以后进行请求。如果不是,则返回失败。Android应用程序会向用户询问他们的数据,然后向端点发送请求。如果成功,它将保存令牌并在以后的所有请求中发送它来验证您自己,可以作为参数或作为标头。
这当然是最简单的版本。更高级的功能包括登录令牌过期,刷新令牌,如果有太多错误请求,可能会被锁定等等。但以上是基本思想。虽然我真的想寻找一个开源的解决方案,你可以采用,因为有相当多的复杂性,当你进入所有上面提到的东西,这是一个错误,导致一个漏洞可能是最危险的地方。