ベストプラクティス
ベストプラクティス
クライアントシークレットのセキュリティ
クライアントシークレットは機密情報であり、保護する必要があります。アクセストークンの取得時にBoxがアプリケーションのIDを安全に確認するために使用されるため、クライアントシークレットを自由に配布するべきではありません。配布方法には、メール、公開フォーラム、コードリポジトリ、分散されたネイティブアプリケーション、クライアント側のコードなどがあります。
トークンのキャッシュ
新しいトークンの取得はコストが高いため、トークンのキャッシュを使用して、不要なリクエストが行われないようにすることをお勧めします。
トークンは、取得後、Memcachedなどのインメモリキャッシュ、または組み込みのASP.NETキャッシュサービスに保存してください。デフォルトでは、アクセストークンの有効期限は60分ですが、バッファを確保するために50分程度に設定することをお勧めします。
トークンが必要になったら、まずキャッシュに有効なトークンがあるかどうかを確認します。トークンの有効期限が切れている場合は、新しいトークンを取得し、キャッシュに50分間保存します。
def self.user_client(user_id)
access_token=Rails.cache.fetch("box_tokens/user/#{user_id}", :expires_in => 50.minutes) do
puts "getting new user token"
response= Boxr::get_user_token(user_id, private_key: PRIVATE_KEY, private_key_password: ENV['JWT_PRIVATE_KEY_PASSWORD'])
response.access_token
end
Boxr::Client.new(access_token)
end