![](/img/trans.png)
[英]Is it possible to expose an API for my own WebSite … but use oAuth for the api authentication?
[英]What is the correct way to use OAuth for mobile and website consuming my own API?
我有一个问题与OAuth 2的工作方式有关,但由于使用IdentityServer实现OAuth,我认为这是相关的。 我无法在任何地方找到答案。
我正在建立一个消耗我自己的API的网站和移动应用程序。 我的应用程序的每个用户都将拥有一个用户名和密码,这将使他能够访问应用程序/网站,并通过API访问他的信息。
我不确定处理用户登录流程的正确方法:
编辑
只是为了澄清,因为我发现很多讲座和文章从API消费者的角度来解释这个过程(即第三方开发者):我是API所有者和auth服务器所有者,我是所有者用户帐户(他们是我服务的用户),我也是我自己的消费者(虽然是网站和移动应用程序),并且将来我想让第三方开发者允许我的用户登录他们对我服务的描述(有点像Facebook或谷歌)
你是不对的,你不应该在你的应用程序中存储client_secret
,但我怀疑你会绕过存储client_id
。 您也可以为应用禁用同意屏幕,并构建本机登录视图。 如果您不希望用户每次使用您的应用程序时都登录,则需要在设备上存储access_token
和refresh_token
(可能在数据库中加密)。
至于问题4,您可以执行以下操作:
client_secret
嵌入到您的(Web)应用程序中 hash(ip_address + session_salt)
计算session_secret
hash(ip_address + session_salt)
session_secret
和client_secret
进行API调用 hash
和client_secret
完全阻止某人使用您的API几乎是不可能的。 但是你应该添加各种速率限制方法,例如限制IP地址,API调用等。但没有什么能阻止某人反编译您的应用并访问您的client_id
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.