我做的鬆弛整合爲我的網站,包括允許用戶登錄使用「登錄與時差」按鈕不斷提示用戶許可。理想情況下,我希望它只要求用戶授予一次identity.*
權限,然後下次單擊「使用Slack登錄」時,授權屏幕應該只閃爍,然後重定向到下一步(例如使用Facebook),但它不斷顯示授權屏幕,用戶必須點擊「繼續」按鈕才能一次又一次授予權限。這對我們的用戶來說很不方便。有沒有什麼辦法讓它像Facebook一樣提示一次?僅供參考我的應用程序尚未公開分發到應用程序目錄,是否可能是原因?「拍在與鬆弛」每次
回答
不,沒有任何在公共應用程序目錄之中。
鬆弛登錄在不緩存用戶登錄像其他OAuth的提供商母鹿,所以如果你想避免用戶必須登錄,在每一個你必須緩存在您的應用程序的用戶權限的時間。例如通過使用cookie。
這裏是如何工作的原則:
- 成功簽署了用戶之後,關於存儲在cookie對於客戶端登錄成功的信息。
- 當客戶端再次打開您的網頁時,請檢查該客戶端的cookie以獲取有關成功登錄的信息。
- 當您找到該信息時,顯示屬於該客戶端的用戶已登錄(而不是顯示Slack登錄按鈕)。
- 顯示爲登錄用戶的選擇註銷(可選)
您存儲有關用戶的哪些信息取決於你的應用需求。如果您只想證明登錄成功,則應該足以存儲team_id
和user_id
。但是,您還將因該成功登錄而獲得該用戶的新access_token
(與您的應用的access_token
不同)。 (請參閱下面的完整示例你從鬆弛接收)
請記住,Cookie是在客戶端本地存儲並可以查看用戶。因此,根據您的安全需求,建議不要直接在cookie中存儲任何與用戶相關的信息(特別是不要在access_token
)。而是存儲一個ID,該ID與應用程序存儲在服務器上的數據鏈接。 (還有其他的辦法解決這個問題,但是這是一個不同的討論。)
這裏是您收到從什麼時差成功登錄之後的示例:
{
"ok": true,
"access_token": "XXXX",
"scope": "identity.basic",
"user":
{
"id": "U12345678",
"name": "Donald Dummy"
}
"team":
{
"id": "T12345678"
}
}
你建議我緩存什麼?我有自己的網站auth令牌,但緩存它意味着保持用戶登錄,這是他們註銷並希望重新登錄的情況。鬆弛的授權代碼僅在10分鐘內有效,因此緩存他們wouldn'工作。訪問令牌存儲在數據庫中,但用戶必須再次爲其身份提供一些證明(授權代碼)才能使用該訪問令牌。 – KwiZ
所以我期望的是,在用戶第一次授予身份權限之後,當用戶點擊「Sign in with Slack」按鈕時,他們仍然應該被帶到鬆弛的oauth頁面,在那裏鬆弛會檢查並看到這個用戶已經向我們授予'identity。*'權限,並立即返回一個新的授權碼給我們的redirect_uri,而不顯示屏幕並讓用戶點擊「繼續」。我需要做什麼來實現這種行爲,或者甚至有可能? – KwiZ
我會延長我的回答,使其更加清晰。 –
- 1. Hubot與鬆弛適配器
- 2. 鬆弛API
- 3. 鬆弛字節
- 4. 每次發送鬆弛通知Log ::錯誤被觸發
- 5. 鬆弛chatPostMessage失敗
- 6. 鬆弛RTM消息
- 7. 春天啓動的oauth2與鬆弛
- 8. 配置鬆弛與觀察者發現
- 9. 集成鬆弛與果園CMS
- 10. 鬆弛API(JSON數據)
- 11. Omniauth-鬆弛範圍錯誤
- 12. Hubot鬆弛附件字段
- 13. LUIS附加到鬆弛
- 14. 鬆弛API消息格式
- 15. 你有「鬆弛」時間嗎?
- 16. 鬆弛:在發送的消息
- 17. 在SCIPsolve之前獲得LP鬆弛
- 18. 在鬆弛模式下提升SyntaxError
- 19. 鬆弛和Python來運行鬆弛打開特定的聊天(從3DSMAX和Maya)
- 20. 鬆弛用戶刪除事件
- 21. 鬆弛API rtm.start missing_scope需要客戶
- 22. 鬆弛命令中的多個參數
- 23. drone.io 0.5鬆弛不再工作
- 24. Clojure的 - 功能鬆弛算法
- 25. 如何用cplex解決LP鬆弛
- 26. 鬆弛機器人錯誤:「user_is_bot」的channels.join
- 27. 處理Botbuilder中的鬆弛按鈕/ nodejs
- 28. 拉格朗日鬆弛Cplex&Java
- 29. 鬆弛動作屬性文檔
- 30. 沒有模塊命名鬆弛
你確定它是否是由於應用程序未被髮布?我也遇到了這個問題,同樣在登錄期間只需要在文檔中指定'identity.basic'(https://api.slack.com/docs/sign-in-with-slack) –
這不是由於對於未發佈的應用,至少在當時沒有辦法避開該確認屏幕。我不確定Slack是否已經改變它直到現在。 – KwiZ