Q:

Como passar de forma segura o token após autenticação para aplicação angular

Estou a desenvolver um addin em angular para outlook - Office365 para uma aplicação de gestão "Jasmin Software". A aplicação está dividida em duas partes, A  1 é uma aplicação javasscript para tratar da autenticação no servidor Aouth2, a segunda é a aplicação angular propriamente dita.
Questão: Como posso passar de forma segura o token devolvido após autenticação à aplicação angular para depois fazer os pedidos à aplicação.
O meu código depois de obter a resposta do servidor é este:
    function getCallbackResponse(data) {

    var responseParameters = (data).split("&");
    var parameterMap = [];

    for (var i = 0; i < responseParameters.length; i++) {
        parameterMap[responseParameters[i].split("=")[0]] = responseParameters[i].split("=")[1];
    }

    if (parameterMap.access_token !== undefined && parameterMap.access_token !== null) {

        var oauth_response = {
                access_token: parameterMap.access_token,
                expires_in: parameterMap.expires_in
        };

        // ESTOU A USAR ISTO...MAS NÃO SEI SE A MELHOR FORMA?
        sessionStorage.removeItem('oauth');
        sessionStorage.setItem('oauth', JSON.stringify(oauth_response));

    } else {

        console.log('Problem authenticating');
    }
}

A:

A mais comum é a que tu fizeste: Gravar o token em session-storage e depois aceder à session-storage quando a queremos ler.
Isto é tão seguro como "gravar um ficheiro no teu pc", sendo que só o cliente que recebeu a token é que sabe que a gravou na session-storage.
Outra maneira de fazer isto, e que é usada nos emails (pex), é usares um url com a token - e se o servidor reconhecer a token então tá tudo bem - se não descartas esse pedido como erro.

Se a tua preocupação é com ataques do tipo MitM, nesse caso a tua preocupação passa a ser: usar SSL.

