2017-07-22 21 views
1

的認證請求的提示參數的可用值已經登錄如下:忽略提示,而用戶在

  • 沒有。這不會顯示登錄界面如果用戶已經登錄就會成功
  • login:這將始終顯示登錄UI以重新認證用戶。即使已經登錄。
  • 同意:這將始終顯示同意用戶界面。即使以前授權。
  • select_account:...

他們沒有服務於以下流程:

  • 如果用戶登錄,返回成功。否則,顯示登錄UI。
  • 如果用戶已登錄並且以前授權客戶端應用程序,則返回成功。

回答

1

我認爲prompt參數恰好與您想要的參數完全相反 - 它在那裏需要或強制某些行爲而不是默認參數。例如,對於none,您假定用戶在OAuth2服務器上有一個有效會話,並且您使用隱藏的iframe訪問/auth端點,所以如果沒有會話,您希望它失敗,而不是呈現登錄屏幕。

您所描述的第二個缺失prompt參數值是默認行爲(沒有prompt參數存在)。第一個可以繞過同意屏幕,所以我認爲這會違反OAuth2原則。

+0

此外,如果在使用prompt = none時,使用ID未登錄或未提供授權請求時的許可,則許多授權提供程序將返回login_required或interaction_required。 – jwilleke

+0

@ján-halaša請您參考某個標準規範中的一個地方,這個標準規範說明了省略提示時的行爲?只是爲了建立一個參考而不是從沉默中爭論的論點。 –

+0

@ján-halaša關於我假設的第一個缺少的提示參數值:它不會繞過同意屏幕。如果不需要同意,即使沒有任何授權給客戶端(例如,客戶端沒有要求任何索賠),返回「用戶認證成功」也是有效的。或者如果所請求的索賠要求同意,則應返回consent_required。 –