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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions