我正在尝试在我的一个项目中实现瑞典银行身份认证。但是互联网上可用的资源太少了。有人能帮我如何在flutter应用程序中实现银行身份认证吗?
wwtsj6pe1#
不知道你有多少经验,所以也许你已经知道一些东西,但这是我如何解决它。该服务具有用于执行验证的三个主要端点:/auth/start:此端点用于启动验证过程,并生成一个唯一密钥(称为bankIdToken),该密钥以GUID的形式返回。/auth/status:此端点用于检查已使用/auth/start端点启动的验证进程的状态。状态可以是“正在等待”或“已完成”。/auth/verify:此端点用于验证已完成验证过程的用户的身份,并返回包含用户信息的JSON对象。要执行验证,步骤如下:向/auth/start发送请求以启动流程并接收bankIdToken。将bankIdToken传递给/auth/verify以触发用户设备上的验证(移动的,pc),状态将为等待。用户在其设备上完成该过程后,通过向/auth/status发送一个请求来检查状态,这将把状态更改为completed。向/auth/verify发送一个请求来验证用户,这将返回一个包含用户信息的JSON对象。您还可以在https://demo.bankid.com/获得测试bankid,并在skatteverket或https://fejka.nu/获得假瑞典人号码(GDPR批准)这是我的Flutter代码,带有硬编码值
/auth/start:
/auth/status:
/auth/verify:
/auth/start
/auth/verify
class AuthDataSource { Future<AuthVerifyModel> authFlow() async { final authStartResponse = await http.post( Uri.https(BASEURL, '/auth/start'), headers: <String, String>{ 'Content-Type': 'application/json; charset=UTF-8', }, body: jsonEncode(<String, String>{ 'bankIdNumber': '198806192392', }), ); if (authStartResponse.statusCode != 200) { throw ServerException(); } final authStartModel = AuthStartModel.fromJson(jsonDecode(authStartResponse.body)); final authStatusResponse = await http.post( Uri.https(BASEURL, '/auth/status'), headers: <String, String>{ 'Content-Type': 'application/json; charset=UTF-8', }, body: jsonEncode(<String, String>{ 'bankIdToken': authStartModel.bankIdToken.toString(), }), ); if (authStatusResponse.statusCode != 200) { throw ServerException(); } final authVerifyResponse = await http.post( Uri.https(BASEURL, '/auth/verify'), headers: <String, String>{ 'Content-Type': 'application/json; charset=UTF-8', }, body: jsonEncode(<String, String>{ 'bankIdToken': authStartModel.bankIdToken.toString() }), ); if (authVerifyResponse.statusCode != 200) { throw ServerException(); } return AuthVerifyModel.fromJson(jsonDecode(authVerifyResponse.body)); } }
1条答案
按热度按时间wwtsj6pe1#
不知道你有多少经验,所以也许你已经知道一些东西,但这是我如何解决它。
该服务具有用于执行验证的三个主要端点:
/auth/start:
此端点用于启动验证过程,并生成一个唯一密钥(称为bankIdToken),该密钥以GUID的形式返回。/auth/status:
此端点用于检查已使用/auth/start端点启动的验证进程的状态。状态可以是“正在等待”或“已完成”。/auth/verify:
此端点用于验证已完成验证过程的用户的身份,并返回包含用户信息的JSON对象。要执行验证,步骤如下:
向
/auth/start
发送请求以启动流程并接收bankIdToken。将bankIdToken传递给/auth/verify
以触发用户设备上的验证(移动的,pc),状态将为等待。用户在其设备上完成该过程后,通过向/auth/status发送一个请求来检查状态,这将把状态更改为completed。向/auth/verify
发送一个请求来验证用户,这将返回一个包含用户信息的JSON对象。您还可以在https://demo.bankid.com/获得测试bankid,并在skatteverket或https://fejka.nu/获得假瑞典人号码(GDPR批准)
这是我的Flutter代码,带有硬编码值