簡體   English   中英

如何自動獲取OAuth 2.0令牌並重新打開應用程序?

[英]How can I automatically get OAuth 2.0 token and re-open my app?

我正在使用Delivery.com API來構建我的應用程序,而我對OAuth流程的當前理解是:

  1. 我將用戶重定向到瀏覽器,他們在其中明確登錄到他們的帳戶。 我在此過程中提供了redirect_uri。
  2. 登錄后,用戶將使用訪問令牌重定向到redirect_uri
  3. 我以某種方式獲得了訪問令牌,並使用它來驗證我的應用中將來的操作

我正在努力的第3步-我已經設置了一個Intentintent-filter器,以便在第1步中正確打開瀏覽器,並在第2步中將用戶正確地重定向回了我的應用程序。但這留下了兩個問題:

  1. 重新打開我的應用程序的redirect_uri在后台這樣做-瀏覽器永遠不會關閉。 我假設對此有一個簡單的解決方法,但尚未找到它。
  2. 如何獲得訪問令牌? 重定向到另一個顯示令牌的網頁,然后讓用戶手動將其復制並粘貼回我的應用程序中的唯一解決方案? 或者我可以以某種方式自動獲取令牌,重新打開我的應用程序,然后繼續嗎?

編輯:我能夠做到這一點-我不確定是什么導致了上面#1中的問題,但是在來回更改幾次后,它開始工作了,就像我最初擁有的那樣。 對於以后研究此問題的任何人,我都必須在Manifest.xml包含以下所有元素才能使其正常工作:

<action android:name=android.intent.action.VIEW"/>
<category android:name="android.intent.category.BROWSABLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="myapp.randomname" android:host="my_url"/>

關於問題2,我能夠通過使用Uri data = getIntent().getData()然后調用data.getQueryParameter("fieldname")來解析響應。

與其啟動外部瀏覽器和使用意圖過濾器, WebView直接在應用程序中使用WebView並通過OAuth獲得更多好處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM