Skip to content

Tony/move client profile#47

Merged
gjwgit merged 7 commits into
devfrom
tony/move_client_profile
Jul 10, 2026
Merged

Tony/move client profile#47
gjwgit merged 7 commits into
devfrom
tony/move_client_profile

Conversation

@tonypioneer

Copy link
Copy Markdown
Collaborator

Pull Request Details

Description

Fixed the login issues.

Please upload client-profile.jsonld to https://anusii.github.io/solidautheg/client-profile.jsonld
Please upload redirect.html to https://anusii.github.io/solidautheg/redirect.html

Related Issues

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How To Test?

Run the app, and then login.

Checklist

  • Screenshots included here/in linked issue #
  • Changes adhere to the style and coding guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • Any dependent changes have been merged and published in downstream modules
  • The update contains no confidential information
  • The update has no duplicated content
  • No lint check errors are related to these changes (make prep or flutter analyze lib)
  • Integration test dart test output or screenshot included in issue #
  • I tested the PR on these devices:
    • Android
    • iOS
    • Linux
    • MacOS
    • Windows
    • Web
  • I have identified reviewers
  • The PR has been approved by reviewers

Finalising

  • Merge dev into the this branch
  • Resolve any conflicts
  • Add a one line summary into the CHANGELOG.md
  • Push to the git repository and review
  • Merge the PR into dev

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to fix Solid-OIDC login issues in the Flutter example app by introducing a hosted client identifier document and a web redirect handler, and by updating runtime redirect URI selection to better match platform needs (web vs native vs desktop).

Changes:

  • Add client-profile.jsonld and a web redirect.html page to support Solid-OIDC redirect / logout flows.
  • Update the example app’s redirect URI configuration to be derived per-platform at runtime.
  • Add macOS Xcode project files / entitlements and pin Chrome runs to port 4400.

Reviewed changes

Copilot reviewed 11 out of 12 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
support/flutter.mk Runs Chrome on a fixed web port (4400) to align with loopback redirect URIs.
example/web/redirect.html Adds a redirect/logout relay page for OIDC web flows (BroadcastChannel + localStorage).
example/test/widget_test.dart Removes the (commented-out) default widget test scaffold.
example/macos/Runner/Release.entitlements Adds macOS release entitlements for sandbox/network/keychain (and currently JIT/server).
example/macos/Runner/DebugProfile.entitlements Adds macOS debug entitlements for sandbox/network/keychain (and currently JIT/server).
example/macos/Runner.xcodeproj/xcuserdata/intony.xcuserdatad/xcschemes/xcschememanagement.plist Adds user-specific Xcode scheme state.
example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme Adds a shared Xcode scheme for the macOS runner project.
example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Adds Xcode workspace check metadata.
example/macos/Runner.xcodeproj/project.pbxproj Adds macOS Xcode project configuration (currently includes a hard-coded DEVELOPMENT_TEAM).
example/lib/screens/LoginScreen.dart Introduces per-platform redirect URI selection and wires it into SolidOidcConfig.
example/client-profile.jsonld Adds a Solid-OIDC client identifier document with redirect and post-logout URIs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +52 to +54
if (kIsWeb) {
return '${Uri.base.origin}/redirect.html';
}
Comment thread example/client-profile.jsonld Outdated
Comment on lines +3 to +8
"client_id": "https://anushkavidanage.github.io/solid_auth/example_app/client-profile.jsonld",
"client_name": "Flutter Solid Authentication",
"application_type": "native",
"redirect_uris": [
"https://anushkavidanage.github.io/solid_auth/example_app/redirect.html",
"com.example.solidautheg://redirect",
Comment thread example/web/redirect.html
Comment on lines +53 to +59
setLocalStorage(stateResponseNamespace, state, window.location.toString());
//we call JSON.parse twice, since shared_preferences double encodes json strings for some reason.
const parsedStateString = JSON.parse(stateDataRaw);
if (!parsedStateString) {
console.error('parsed state is null');
return;
}
Comment thread example/web/redirect.html
Comment on lines +101 to +114
function setLocalStorage(namespace, key, value) {
const keysEntryKey = 'oidc.keys.' + namespace;
var keys = localStorage.getItem(keysEntryKey);
if (!keys) {
keys = "[]";
}
const parsedKeys = JSON.parse(keys);
if (!(parsedKeys instanceof Array)) {
console.error('parsedKeys is not an array.', parsedKeys);
}
parsedKeys.push(key);
localStorage.setItem(keysEntryKey, JSON.stringify(parsedKeys));
localStorage.setItem('oidc.' + namespace + '.' + key, value);
}
Comment thread example/web/redirect.html
Comment on lines +69 to +75
const original_uri = parsedStateString.original_uri;
if (!original_uri) {
console.warn("it's preferred that original_uri is used when webLaunchMode is samePage.");
return;
}
window.location.assign(original_uri);
}
Comment on lines +1 to +5
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = G7843T3SD3;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = G7843T3SD3;
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
DEVELOPMENT_TEAM = G7843T3SD3;
Comment on lines +7 to +12
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>

@gjwgit gjwgit left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All changes are in example. Merging and releasing. Createing solidautheg repository to host the client and redirect.

@gjwgit
gjwgit merged commit 90c4575 into dev Jul 10, 2026
20 checks passed
@gjwgit
gjwgit deleted the tony/move_client_profile branch July 10, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants