Skip to content

Trying to login with a Solid Identity Provider causes an exception. #30

@birchtree02

Description

@birchtree02

I have tried to follow the example in the getting started notebook in order to access private resources but it keeps throwing this error:

Traceback (most recent call last): File "C:\Users\edwar\Documents\coding\gerald\Solid_Server_Prototypes\python\pythonNotesApp\app.py", line 50, in <module> app = NotesApp() File "C:\Users\edwar\Documents\coding\gerald\Solid_Server_Prototypes\python\pythonNotesApp\app.py", line 12, in __init__ self.login() File "C:\Users\edwar\Documents\coding\gerald\Solid_Server_Prototypes\python\pythonNotesApp\app.py", line 28, in login self.auth.login(IDP, USERNAME, PASSWORD) File "C:\Users\edwar\Documents\coding\gerald\Solid_Server_Prototypes\python\solid-env\lib\site-packages\solid\auth.py", line 24, in login r.raise_for_status() File "C:\Users\edwar\Documents\coding\gerald\Solid_Server_Prototypes\python\solid-env\lib\site-packages\httpx\_models.py", line 1402, in raise_for_status raise HTTPStatusError(message, request=request, response=self) httpx.HTTPStatusError: 404 Client Error: Not Found for url: https://broker.pod.inrupt.com/login/password For more information check: https://httpstatuses.com/404

This is the code I am using:
https://github.com/birchtree02/Solid_Prototypes/blob/main/python/pythonNotesApp/app.py

from solid.auth import Auth
from solid.solid_api import SolidAPI

import io
import json


class NotesApp():
    def __init__(self, folder_name="notes"):

        self.auth = Auth()
        self.login()
        self.folder_url = self.POD_ENDPOINT + folder_name + '/'

        if not self.api.item_exists(self.folder_url):
            self.api.create_folder(self.folder_url)
            if not self.api.item_exists(self.folder_url):
                raise Exception('Error initialising folder.')

    def login(self):
        configs = json.load(open('account.json'))
        self.POD_ENDPOINT = configs['SOLID_ENDPOINT']
        IDP = "https://broker.pod.inrupt.com"
        USERNAME = configs['SOLID_USERNAME']
        PASSWORD = configs['SOLID_PASSWORD']

        self.api = SolidAPI(self.auth)
        self.auth.login(IDP, USERNAME, PASSWORD)

        # self.api = SolidAPI()

    def editNote(self, note_name, content_to_add):
        note_url = self.folder_url + note_name + '.md'
        if not self.api.item_exists(note_url):
            self._createNote(note_url, content_to_add)
        else:
            pass

    def _createNote(self, note_url, content=""):
        self.api.put_file(note_url, io.BytesIO(content.encode('UTF-8')), 'text/markdown')

    def getNote(self, note_name):
        note_url = self.folder_url + note_name + '.md'
        resp = self.api.get(note_url)
        
        return resp.text


if __name__ == '__main__':
    app = NotesApp()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions