Cómo usar OAuth con Github en una extensión de Safari

Soy nuevo en las extensiones de browser. Estoy tratando de crear una extensión de Safari que me permita realizar tareas básicas en mi count de Github (crear un repository, por ejemplo). Lo hago principalmente para aprender a desarrollar extensiones mientras practico mi JS.

El problema es que para conectarme a Github quiero usar OAuth, pero no tengo ni idea de cómo hacerlo. Busqué en Google para ver si puedo encontrar una biblioteca que pueda usar sin ningún resultado. El principal problema es que al intentar registrar mi "aplicación" con Github, no tengo idea de qué URL proporcionar para la aplicación principal y la callback, ya que no es una aplicación web lo que estoy desarrollando; es una extensión

¿Alguien tiene alguna experiencia con esto y me puede dar un consejo sobre cómo proceder? ¿Qué URL debería usar para registrarme en Github? ¿Es posible utilizar OAuth desde una extensión? ¿Hay una biblioteca, SDK, cualquier cosa que pueda ayudar a hacer este trabajo? Si esta pregunta se puede ampliar a cualquier browser, solo dígame y cambiaré el título para ayudar a otros en la misma situación.

Gracias a todos por ayudar.

He usado OAuth en una extensión de Safari y puedes mirar mi código para ver un ejemplo (ver el enlace a continuación), pero esta biblioteca JS para Github podría tener todo lo que necesitas. No lo he usado, pero se ve bien, y es compatible con "tokens de acceso personal", que considero una especie de token de OAuth para Github que no requiere especificar un URI de networkingirección.

La extensión My Safari (enlace de Github) usa OAuth 2.0 para hablar con la API de Pocket . No usa una biblioteca. Para el URI de redirect, uso la misma URL que la de la página que inicia todo el process de autorización, pero con "? Status = done" agregado a ella. El script de la página verifica su URL, y si el URL termina en esa cadena, entonces sabe que la página fue cargada por la window de autorización y puede proceder con la obtención del token de acceso.

Una cosa que debe tener en count al usar OAuth en cualquier tipo de aplicación del lado del cliente, como una extensión del browser, es que su token de la aplicación OAuth estará expuesto a los usuarios de su aplicación. Incluso si lo encriptas en la aplicación o lo recuperas de un server a través de https, un usuario puede usar el depurador JS integrado del browser para get el token, porque tienes que descifrarlo en algún momento para usarlo. Si alguien roba tu token, puede utilizarlo para engañar a las personas para que autoricen su nefasta aplicación que pretende ser tuya. Depende de usted decidir si este riesgo es tolerable. La única manera de evitar este riesgo es tener su propia aplicación del lado del server que se comunica con la API de terceros, y su extensión se comunica con eso. Pero luego alguien podría aprender de su código de extensión cómo hablar con su aplicación del lado del server, por lo que no estoy seguro de si realmente le compra algo.