[英]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.