![](/img/trans.png)
[英]Writing an encrypted cookie session store for Rails; is my approach secure?
[英]Is possible to secure a Rails API using session cookie
我有一個問題。 我有兩個Rails網站,站點A和站點B。站點A是一個新聞網站,具有設備作為身份驗證系統,並使用帶有單點登錄的Disqus評論內容。
站點B是另一個新聞網站,沒有任何用戶身份驗證系統,並且使用Disqus對其內容進行注釋,但未進行單點登錄。
我想允許站點A的用戶訪問站點B上的Disqus上的SSO。Disqus SSO使用此腳本
def get_disqus_sso(user)
# create a JSON packet of our data attributes
data = {
'id' => user['id'],
'username' => user['username'],
'email' => user['email']
#'avatar' => user['avatar'],
#'url' => user['url']
}.to_json
# encode the data to base64
message = Base64.encode64(data).gsub("\n", "")
# generate a timestamp for signing the message
timestamp = Time.now.to_i
# generate our hmac signature
sig = OpenSSL::HMAC.hexdigest('sha1', DISQUS_SECRET_KEY, '%s %s' % [message, timestamp])
# return a script tag to insert the sso message
return "<script type=\"text/javascript\">
var disqus_config = function() {
this.page.remote_auth_s3 = \"#{message} #{sig} #{timestamp}\";
this.page.api_key = \"#{DISQUS_PUBLIC_KEY}\";
}
</script>"
end
當然,網站BI上沒有任何用戶,請購買我想在網站A上創建一個私有API,該API返回登錄用戶"#{message} #{sig} #{timestamp}\\"
成功通過身份驗證后,是否可以使用Devise創建的會話cookie作為auth方法來創建返回某些內容的API?
我認為使用jwt是可能的。 流程如下。 (僅在子域中進行了測試)
user uses siteA(stores generated jwt token in a cookie) --> siteB uses the jwt token in cookie --> sends token to siteA for user data --> gets user data.
jwt認證示例
注意 :僅適用於子域,並且不要忘記對cookie進行簽名以防止篡改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.