pixelfed/config/remote-auth.php

133 wiersze
4.2 KiB
PHP

2023-07-16 13:09:15 +00:00
<?php
return [
'mastodon' => [
'enabled' => env('PF_LOGIN_WITH_MASTODON_ENABLED', false),
'ignore_closed_state' => env('PF_LOGIN_WITH_MASTODON_ENABLED_SKIP_CLOSED', false),
2023-07-16 13:09:15 +00:00
'contraints' => [
/*
* Skip email verification
*
* To improve the onboarding experience, you can opt to skip the email
* verification process and automatically verify their email
*/
'skip_email_verification' => env('PF_LOGIN_WITH_MASTODON_SKIP_EMAIL', true),
],
'domains' => [
'default' => 'mastodon.social,mastodon.online,mstdn.social,mas.to',
/*
* Custom mastodon domains
*
* Define a comma separated list of custom domains to allow
*/
'custom' => env('PF_LOGIN_WITH_MASTODON_DOMAINS'),
/*
* Use only default domains
*
* Allow Sign-in with Mastodon using only the default domains
*/
'only_default' => env('PF_LOGIN_WITH_MASTODON_ONLY_DEFAULT', false),
2023-07-16 13:09:15 +00:00
/*
* Use only custom domains
*
* Allow Sign-in with Mastodon using only the custom domains
* you define, in comma separated format
*/
'only_custom' => env('PF_LOGIN_WITH_MASTODON_ONLY_CUSTOM', false),
],
'max_uses' => [
/*
* Max Uses
*
* Using a centralized service operated by pixelfed.org that tracks mastodon imports,
* you can set a limit of how many times a mastodon account can be imported across
* all known and reporting Pixelfed instances to prevent the same masto account from
* abusing this
*/
'enabled' => env('PF_LOGIN_WITH_MASTODON_ENFORCE_MAX_USES', true),
'limit' => env('PF_LOGIN_WITH_MASTODON_MAX_USES_LIMIT', 3)
]
],
Staging (#5978) * Added current title as value for input so that the current value remains stored by default * Added parameter 'show_legal_notice_link' => (bool) config_cache('instance.has_legal_notice'), * Added conditional display of a link to legal notice if the page is active * Added key 'legalNotice' * feat translate story * translate auth - register - login * add remove follow * Update ApiV1Controller.php Co-Authored-By: Mathieu <385764+Casmo@users.noreply.github.com> * New translations web.php (Chinese Simplified) [ci skip] * Added current title as value for input so that the current value remains stored by default * Added parameter 'show_legal_notice_link' => (bool) config_cache('instance.has_legal_notice'), * Added conditional display of a link to legal notice if the page is active * Added key 'legalNotice' * add missing key * add missing keys * New translations web.php (Portuguese, Brazilian) [ci skip] * New translations web.php (Turkish) [ci skip] * New translations web.php (Italian) [ci skip] * translate custom filter * New translations web.php (Italian) [ci skip] * use configured alt text length limit when uploading multiple photos * in notifications sidebar, show popover on shared posts too, not just liked posts * use case insensitive search when tagging accounts * New translations web.php (Portuguese, Brazilian) [ci skip] * Generic OIDC Support * Everything should be configurable by env variables * Basic request tests * Fixes for items highlighted by review.ai * Consider using `hash_equals()` instead of `==` when comparing the state values to prevent timing attacks: `abort_unless(hash_equals($request->input('state'), $request->session()->pull('oauth2state')), 400, 'invalid state');` * For better data integrity, consider adding a foreign key constraint to the user_id column: `$table- >foreign('user_id')->references('id')->on('users')->onDelete('cascade');` * Does the OIDC provider guarantee that the username field exists in the userInfo data? Consider adding a null check or fallback: `$userInfoData[config('remote-auth.oidc.field_username')] ?? null` * field isnt accessTokenResourceOwnerId but responseResourceOwnerId * New translations web.php (Dutch) [ci skip] * Fix components * Update LandingService and Config util to properly support the legal_notice setting * Update footer to use legalNotice i18n * Update i18n * Update sidebar with gap padding for footer links * Update compiled assets * Update i18n json * Update OIDC config with comments, and disable tests as we dont have db tests configured * Update remove_from_followers api endpoint * Update i18n * Update compiled assets * Update changelog * New supported formats, Preserve ICC Color Profiles, libvips support Update image pipeline to handle avif, heic and webp and preserve ICC color profiles and added libvips support. * Fix tests * Update CHANGELOG.md --------- Co-authored-by: Samy Elshamy <elshamy@coderbutze.de> Co-authored-by: Felipe Mateus <eu@felipemateus.com> Co-authored-by: Mathieu <385764+Casmo@users.noreply.github.com> Co-authored-by: Mackenzie Morgan <macoafi@gmail.com> Co-authored-by: Gavin Mogan <git@gavinmogan.com>
2025-05-13 08:25:23 +00:00
'oidc' => [
/*
* Enable OIDC authentication
*
* Enable Sign-in with OpenID Connect (OIDC) authentication providers
*/
'enabled' => env('PF_OIDC_ENABLED', false),
/*
* Client ID
*
* The client ID provided by your OIDC provider
*/
'clientId' => env('PF_OIDC_CLIENT_ID', false),
/*
* Client Secret
*
* The client secret provided by your OIDC provider
*/
'clientSecret' => env('PF_OIDC_CLIENT_SECRET', false),
/*
* OAuth Scopes
*
* The scopes to request from the OIDC provider, typically including
* 'openid' (required), 'profile', and 'email' for basic user information
*/
'scopes' => env('PF_OIDC_SCOPES', 'openid profile email'),
/*
* Authorization URL
*
* The endpoint used to start the OIDC authentication flow
*/
'authorizeURL' => env('PF_OIDC_AUTHORIZE_URL', ''),
/*
* Token URL
*
* The endpoint used to exchange the authorization code for an access token
*/
'tokenURL' => env('PF_OIDC_TOKEN_URL', ''),
/*
* Profile URL
*
* The endpoint used to retrieve user information with a valid access token
*/
'profileURL' => env('PF_OIDC_PROFILE_URL', ''),
/*
* Logout URL
*
* The endpoint used to log the user out of the OIDC provider
*/
'logoutURL' => env('PF_OIDC_LOGOUT_URL', ''),
/*
* Username Field
*
* The field from the OIDC profile response to use as the username
* Default is 'preferred_username' but can be changed based on your provider
*/
'field_username' => env('PF_OIDC_USERNAME_FIELD', "preferred_username"),
/*
* ID Field
*
* The field from the OIDC profile response to use as the unique identifier
* Default is 'sub' (subject) which is standard in OIDC implementations
*/
'field_id' => env('PF_OIDC_FIELD_ID', 'sub'),
],
2023-07-16 13:09:15 +00:00
];