[英]How do I specify a custom field for uid in an omniauth strategy?
我正在構建一個omniauth 策略來使用Suunto API。 對他們的token_url
的請求會返回一個包含user
鍵/值的響應:
{
"access_token":"ACCESS_TOKEN",
"token_type":"bearer",
"refresh_token":"REFRESH_TOKEN",
"expires_in":86399,
"scope":"workout",
"ukv":"1",
"uk":"SOME_VALUE",
"user":"UID",
"jti":"SOME_VALUE"
}
這意味着用作uid
值。
基於聲明性配置文檔,我嘗試了這個,但沒有運氣:
option :fields, [:user]
option :uid_field, :user
這不起作用,因為請求中不存在該字段,它位於token_url
響應中:
uid do
request.params[options.uid_field.to_s]
end
Defining the Callback Phase 文檔有一個關於credentials
的注釋,但沒有使用示例。
我應該在我的策略中添加/編輯什么來告訴它為從令牌請求響應返回的user
設置uid
值?
啊。 我想通了:這進入了策略:
uid { raw_info["user"] }
def raw_info
@raw_info ||= access_token
end
在raw_info
中, access_token
是我在問題開頭包含的 hash 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.