Skip to content

Instantly share code, notes, and snippets.

@skiph
skiph / modified config.js
Created May 4, 2017 04:23
API Proxy Key - modified for approov
module.exports = {
proxy_port: /* port the proxy listens on */
8080,
nasa_host: /* NASA API host */
'api.nasa.gov',
nasa_protocol: /* NASA API protocol */
'https:',
approov_header: /* Approov header name */
'approov',
approov_enforcement: /* set true to enforce token checks */
@skiph
skiph / enhanced nasa.js
Created May 4, 2017 05:37
API Key Proxy - enhanced API processing
const path = require('path');
const url = require('url');
const request = require('request');
const chalk = require('chalk');
// load api configuration and secrets
const config = require(`${__dirname}/../config.js`);
if (config.nasa_host == null) {
module.exports = {
approov_token_secret: /* token secret received from Approov demo download */
'APPROOV DEMO TOKEN SECRET BASE64 STRING HERE',
google_client_secret: /* client secret received from Google */
'GOOGLE CLIENT SECRET HERE'
};
@skiph
skiph / ShapeView.js
Created April 27, 2018 00:18
RNDemo - shapes component
import React from "react";
import { View, Image, Text, StyleSheet } from "react-native";
const shapeView = (props) => {
const imgSrc = {
'logo': require('./assets/approov_largelogo.png'),
'hello': require('./assets/hello.png'),
'confused': require('./assets/confused.png'),
'Rectangle': require('./assets/rectangle.png'),
'Square': require('./assets/square.png'),
@skiph
skiph / MainApplication.java
Last active April 27, 2018 01:10
RNDemo - Main Application.java
package com.rndemo;
import ...
import com.criticalblue.approov.ApproovPackage;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
@skiph
skiph / ApproovModule.java
Last active April 27, 2018 01:11
RNDemo - Approov native module
package com.criticalblue.approov;
import ...
import com.criticalblue.attestationlibrary.ApproovAttestation;
import com.criticalblue.attestationlibrary.ApproovConfig;
import com.criticalblue.attestationlibrary.TokenInterface;
class ApproovModule extends ReactContextBaseJavaModule {
@skiph
skiph / App.js
Last active April 27, 2018 17:21
RNDemo - Say Hello
import React from 'react';
import { View, Image, Text, Button, StyleSheet } from 'react-native';
import ShapeView from './ShapeView'
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {shape: 'logo',
status: ''};
}
@skiph
skiph / native-module-call.js
Last active May 2, 2018 19:47
RNDemo - native module call
import {NativeModules} from 'react-native';
NativeModules.Approov.fetchApproovToken(input)
.then(token => {
// do something useful...
})
.catch((error) => {
throw error;
});
@skiph
skiph / AppFragment.js
Last active May 2, 2018 19:51
RNDemo - App getShape fragment
import Approov from './Approov';
class App extends React.Component {
// unchanged code ommitted for brevity...
// get shape
getShape = () => {
Approov.fetch('https://demo-server.approovr.io/shapes', {
@skiph
skiph / Approov.js
Last active May 2, 2018 19:52
RNDemo - Approov module wrapper
import {NativeModules} from 'react-native';
const fetchWithToken = (input, options) => {
return NativeModules.Approov.fetchApproovToken(input)
.then(token => {
let optionsA = (options? {...options, headers:{ ...options.headers}}:{headers: {}});
optionsA.headers['Approov-Token'] = token;
return fetch(input, optionsA)
.then((response) => {