我目前正在开发一个Xamarin表单,该表单使用来自.net核心API的数据
对于API方面,我使用Abp框架
通过使用此引用,我可以使用API中的数据
但在本例中,用户需要使用管理员凭据登录
我需要做的是,我只需要在不登录的情况下使用API中的数据
如果我在需要访问的API方法上添加[AllowAnonymous]属性,这是正确的方法吗?
这就是他们展示的例子,
var accessToken = await _loginService.AuthenticateAsync();
var httpClient = GetHttpClient(accessToken);
有没有像只使用clientId/secret而不使用accessToken这样的例子?
我需要做的是,我只需要在不登录的情况下使用API中的数据。
这指的是服务器到服务器身份验证;后端在没有用户交互的情况下向其他后端发出请求。
您要查找的身份验证流名为客户端凭据流。
它可以归结为:
- 在身份验证服务器上将您的api(abp应用程序(添加为api资源和api范围
- 在身份验证服务器上将您的ui应用程序(xamarin应用程序(添加为客户端
- 在身份验证服务器上为您的xamarin应用程序声明客户端机密
- 从xamarin应用程序向身份验证服务器发出access_token请求,api作用域和客户端机密您已经在上面创建了
它的实现可以在身份验证服务器提供程序(即您的_loginService(上有所不同。它可以是Identityserver4、微软、谷歌等
如果您使用ABP应用程序后端(作为身份验证服务器(,它将在后台处理大多数自动化的内容。您可以检查微服务之间的abp同步通信文档,该文档解释了如何在微服务之间使用客户端凭据。