Armazenando dados do OAuth2 no Mongo?

5

Nosso sistema tem usuários, mas queremos permitir que alguns usuários possam usar nosso serviço de API. Estou olhando para usar o OAuth2 para autorização. Como vai ser o acesso máquina-a-máquina (confiável), também pensei em usar as credenciais do cliente.

Então, por exemplo, quando criamos um artigo através de nossa API, queremos que ele tenha um autor (usuário). Então, talvez armazenar tokens de acesso, tokens de autenticação, credenciais de cliente na coleção de usuários para cada usuário que recebe acesso à API? Esta é uma boa prática?

Coleta de usuários:

[
    {
        "_id": MongoId("uguifdguioei..."),
        "username": "joe.sixpack",
        .
        .
        "oauth": {
            "client_id": "1234567890",
            "client_secret": "qwertyuiop1234567890",
            "access_token": "8sf989dgd9fgdjkngf77y3retr8ghujker",
            "refresh_token": "usknfgeor..."
        }
    },
    .
    .
    .
]

Em outro projeto (MySQL) eu tenho um monte de tabelas adicionais (oauth_clients, oauth_scopes, oauth_access_tokens ", etc) mas eu prefiro evitar criar um monte de novas coleções. Além disso, talvez com o mongo eu possa aproveitar os dados aninhados .

Além disso, anexar o material oauth ao usuário significaria que talvez pudéssemos confiar em nossos aplicativos ACL para autorização (em vez de escopos) e usar o armazenamento oauth para simplesmente emitir e verificar códigos de autenticação, tokens de acesso, tokens de atualização etc.

Ainda não comecei o desenvolvimento, apenas tentando descobrir uma maneira limpa de lidar com as coisas do Oauth. Gostaria de receber algum feedback sobre esta implementação, obrigado

    
por Martyn 15.06.2016 / 05:10
fonte

0 respostas