Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在spring security上使用带颤振的openid connect_Spring_Flutter_Spring Security_Dart_Openid Connect - Fatal编程技术网

如何在spring security上使用带颤振的openid connect

如何在spring security上使用带颤振的openid connect,spring,flutter,spring-security,dart,openid-connect,Spring,Flutter,Spring Security,Dart,Openid Connect,我创建了一个spring引导服务,它由spring security KeyClope适配器保护。由于该服务已经知道(keydove)身份提供商,我认为将issuerul和clientId发送到移动客户端以直接登录keydove没有任何意义。相反,我只想在客户端的webview中调用服务的loginurl。据我所知,spring应该重定向到keydape,并最终返回令牌。 不幸的是,所有flatter包都需要用于oauth进程的clientId和issueUrl 我已经试过这个包裹了 正如您在官

我创建了一个spring引导服务,它由spring security KeyClope适配器保护。由于该服务已经知道(keydove)身份提供商,我认为将issuerul和clientId发送到移动客户端以直接登录keydove没有任何意义。相反,我只想在客户端的webview中调用服务的loginurl。据我所知,spring应该重定向到keydape,并最终返回令牌。 不幸的是,所有flatter包都需要用于oauth进程的clientId和issueUrl

我已经试过这个包裹了

正如您在官方存储库的以下代码示例中所看到的,它需要clientId和issuerrl

//导入io版本
导入“包:openid_client/openid_client_io.dart”;
身份验证(Uri、字符串clientId、列表作用域)异步{
//创建客户端
var issuer=等待issuer.discover(uri);
var客户=新客户(发卡机构、客户ID);
//创建验证器
var验证器=新验证器(客户端,
范围:范围,
港口:4000);
//启动身份验证
var c=await authenticator.authorize();//这将打开浏览器
//返回用户信息
return wait c.getUserInfo();
}

完整披露:我没有编写颤振,但我确实为其编写了一些相关的客户端代码

为什么是issuerUri?原因很可能是因为。您可以使用颁发者推断其他授权服务器端点。这为您减少了配置:您不需要指定令牌端点、授权端点以及on和on。如果您只提供发行人,那么flifter会计算出其余的部分

请注意,对于SpringSecurity,这只是多个配置选项中的一个,但需要以任意一种方式指定一些内容,以便应用程序知道要去哪里。我不能说颤振,但它支持更多配置模式可能只是时间问题


为什么是clientId?这是一项安全措施,是公司要求的。如果有人在调用我的API,我想知道是谁。此外,授权服务器将使用此
客户端id
来执行诸如确保
/authorize
请求中的
重定向uri
与为该
客户端id
配置的内容匹配之类的操作。您的问题是什么?我这样问是因为听起来你已经有了关于如何使用颤振的答案——颤振确实需要issuerUri和clientId来工作。但是为什么它需要这两个信息呢。当我在浏览器中打开受保护的url时,它已将我正确重定向到身份提供程序。因此,除了向客户提供这些信息和直接联系身份提供者之外,没有其他选择了?根据您的澄清,我添加了一个答案。我还建议您更改帖子标题中的问题,这样可以帮助其他有相同问题的Flitter用户。因此,由于身份提供程序应该在服务器组件上进行配置,因此除了基本上发送所有登录相关信息(issuerUrl和clientId)外,没有其他方法给客户?我不太明白这个问题。客户端(请求授权的应用程序)应将这两个值作为其初始配置的一部分。在什么情况下会将这些值发送给客户?例如,重定向uri是客户端发送到授权服务器的东西,而不是相反。可能是我误解了你的要求。