es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo realizar OAuth 1.0 en Flutter para escritorio

Estoy tratando de conectarme a Netsuite usando Flutter y tengo dificultades para entender cómo puedo hacer oauth. En Python hago esto:

from requests_oauthlib import OAuth1Session
import os

oauth = OAuth1Session(
    client_key=os.environ['NETSUITE_CLIENT_KEY'],
    client_secret=os.environ['NETSUITE_CLIENT_SECRET'],
    resource_owner_key=os.environ['NETSUITE_TOKEN_KEY'],
    resource_owner_secret=os.environ['NETSUITE_TOKEN_SECRET'],
    realm='123456'
)

r = oauth.get(
    url,
    headers={'Content-Type': 'application/json'},
    params=params
)

¿Cómo puedo hacer algo similar en Dart? Adiviné que la biblioteca oauth2 es la respuesta, pero no tengo idea de cómo hacer que funcione. ¿Cómo puedo hacer esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para utilizar OAuth con Netsuite en Flutter usando Dart, puedes usar el paquete oauth2. Así es cómo hacerlo:

    1. Importa el paquete:
    import 'package:oauth2/oauth2.dart' as oauth2;
    
    1. Crea una función para obtener el cliente oauth2:
    Future<oauth2.client> getClient() async {
      var credentials = new oauth2.Credentials(
        accessToken: os.environ['NETSUITE_TOKEN_KEY'],
        refreshToken: os.environ['NETSUITE_TOKEN_SECRET'],
      );
      var client = await oauth2.resourceOwnerPasswordGrant(
        Uri.parse('https://example.com/token'), // reemplaza con tu punto de acceso al token
        os.environ['NETSUITE_CLIENT_KEY'], // reemplaza con tu ID de cliente
        os.environ['NETSUITE_CLIENT_SECRET'], // reemplaza con tu secreto de cliente
        os.environ['NETSUITE_USERNAME'], // reemplaza con tu nombre de usuario de Netsuite
        os.environ['NETSUITE_PASSWORD'], // reemplaza con tu contraseña de Netsuite
        credentials: credentials,
      );
      return client;
    }
    
    1. Utiliza el cliente oauth2 para hacer solicitudes:
    var client = await getClient();
    var response = await client.get(url, headers: {'Content-Type': 'application/json'});
    

    En el código anterior, primero creamos un objeto Credentials con el token de acceso y el token de actualización que obtuvimos de Netsuite. Luego creamos un cliente oauth2 utilizando la función resourceOwnerPasswordGrant, pasando el punto de acceso al token, el ID de cliente, el secreto de cliente, el nombre de usuario, la contraseña y las credenciales. Finalmente, utilizamos el cliente para hacer una solicitud GET, pasando la URL y los encabezados.</oauth2.client>

Comments are closed.