Ich versuche gerade, Objekte für S2AP an Google zu senden. Google empfiehlt JWTs wie this zu unterschreiben:JWT mit google-auth-library-ruby kodieren 0.9+
jwt = {
"iss"=> SERVICE_ACCOUNT_EMAIL_ADDRESS,
"aud" => "google",
"typ" => "savetoandroidpay",
"iat"=> Time.now.utc.to_i,
"payload" => {
"loyaltyObjects" => [], #Loyalty objects
"offerObjects" => [], #Offer objects
"loyaltyClasses" => [], #Loyalty classes
"offerClasses" => [] #Offer classes
},
"origins"=> ['http://baconrista.com', 'https://baconrista.com']
}
private_key = Google::APIClient::PKCS12.load_key(SERVICE_ACCOUNT_PRIVATE_KEY, 'notasecret')
jwtEncoded = JWT.encode(jwt, private_key, "RS256")
Da jedoch 0.8 nicht mehr der Standard, und Google::APIClient
nicht mehr unterstützt wird, kann ich nicht herausfinden, wie mit dem mitgelieferten JSON-Datei dass JWT Anmeldung von einem Compute Maschinendienstkonto.
Ich habe derzeit alles andere eingerichtet, um Zugriffstoken zu generieren, um mit googles API mit OAuth2-Authentifizierung zu sprechen, aber kann nicht für das Leben von mir herauszufinden, wie diese JWTs zu kodieren.
als Referenz, das ist, wie Sie die Zugriffstoken von Google bekommen mit dem Rubin gem
compute = Google::Apis::ComputeV1::ComputeService.new
File.open(CONFIG[:GOOGLE_APPLICATION_CREDENTIALS], "r") do |json_io|
compute.authorization = Google::Auth::DefaultCredentials.make_creds(scope: 'https://www.googleapis.com/auth/wallet_object.issuer', json_key_io: json_io)
end
TOKEN = compute.authorization.fetch_access_token!