Giter Site home page Giter Site logo

wultra / mtoken-sdk-android Goto Github PK

View Code? Open in Web Editor NEW
0.0 5.0 1.0 843 KB

PowerAuth based Mobile Token SDK for Android

License: Apache License 2.0

Kotlin 94.07% Shell 5.83% Java 0.10%
strong-customer-authentication psd2 banking authentication passwordless passwordless-authentication transaction-signing

mtoken-sdk-android's People

Contributors

hopsaheysa avatar hvge avatar kober32 avatar petrdvorak avatar tomaskypta avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

thuannv

mtoken-sdk-android's Issues

Improve error handling documentation

Specifically the section around the original e exception - add some example of what this exception can usually be

  • PowerAuth exception
  • networking exception
  • parser exception
  • ...

Support `posession` factor

Right now, we support only possession_knowledge and possession_biometry as signature factors. For 1FA, possession is "automatic".

https://github.com/wultra/mtoken-sdk-android/blob/develop/library/src/main/java/com/wultra/android/mtokensdk/api/operation/model/UserOperation.kt#L116

We should add (to at least allow to parse and throw away) the possession factor because it's in a lot of places in our documentation for backends

For example:
https://developers.wultra.com/components/powerauth-webflow/develop/documentation/Web-Flow-1.2.0.html#data-adapter-changes

Improve documentation

  • split README into documentation
  • write an example for LocalOperation
  • add logging level section

Rewrite public API to callbacks

IPushService and IOperationsService are using listener interfaces for the asynchronous operation completion. We should rewrite both services to use callbacks with kotlin's Result<T> object. The only caveat is that we have to introduce a ApiErrorException because the legacy ApiError doesn't inherit from Throwable and therefore is not compatible with Result<T>.

Allow changing resource ID in offline approvals and document default value

The SDK uses the /operation/authorize/offline value, but this is not mentioned anywhere in the docs. Therefore, the developers who build the server-side part themselves have hard time figuring out how the set the server-side constant and usually make a wrong guess. We should:

  • Add the default value to the client-side documentation
  • Allow changing the constant in the SDK

Document Details

Do not edit this section. We use it to link the issue to the appropriate document. โš 

Documentation improvements

  • add a section with an explanation of what is Operation object
  • add a section with an explanation of what is QROperation object
  • add a section about how networking is done
  • in error scenarios, make some (the usual) examples why the call can fail
  • make a remark in getOperations API that the result is based on acceptLanguage value
  • add info to offline operation signature that even if you provide wrong credentials, the op is signed and will produce a code
  • add info what is the code after signing offline code
  • add biometry counterpart for operation signing

Add tests

  • for QR payment
  • for online payment

and run on github CI

Extract UserOperation necessary info to interface

Extract id and data properties into an interface.
Implement LocalOperation class that implements this interface.
Make UserOperation to implement this interface.

Make approve and reject endpoints to consume this interface instead of UserOperation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.