gpt4 book ai didi

android - react native android oauth2

转载 作者:搜寻专家 更新时间:2023-11-01 07:49:23 24 4
gpt4 key购买 nike

我正在开发一个 react-native 应用程序,在此应用程序中我尝试使用 oauth2 进行身份验证。现在我正在尝试使用 webview 来检索我的 redirect_uri 凭据,但我不确定如何在 Android 设备上以 react-native 检索它。

我找到了一个示例,但它没有解释如何在变量中获取访问 token ,而且我不知道如何在 react-native 中实现它。

为此,我尝试使用隐式流程。

Grant Type: Implicit The implicit grant type is used for mobile apps and web applications (i.e. applications that run in a web browser), where the client secret confidentiality is not guaranteed. The implicit grant type is also a redirection-based flow but the access token is given to the user-agent to forward to the application, so it may be exposed to the user and other applications on the user's device. Also, this flow does not authenticate the identity of the application, and relies on the redirect URI (that was registered with the service) to serve this purpose.

The implicit grant type does not support refresh tokens. The implicit grant flow basically works as follows: the user is asked to authorize the application, then the authorization server passes the access token back to the user-agent, which passes it to the application. If you are curious about the details, read on. https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2

Integrate oauth2 with native (iOS/Android) mobile application

我的问题是我的 redirect_uri 应该是什么?如何在 react-native Android 上检索变量?“隐式流”是在移动应用程序上使用的方式吗?

最佳答案

首先,您开始通过查看其他推荐的内容来了解​​哪种 oauth2 流类型对于您的应用程序来说是最安全的。

之后,我查看了“隐式与密码 grant_type”并查找了所需的字段:

https://www.rfc-editor.org/rfc/rfc6749

我确保授权端点处于 Activity 状态以进行测试(通过使用正确的 grant_type 使一个端点处于 Activity 状态)接下来我想知道如何填写所有字段。通过安装 postman,我可以自己分析并进行 POST 调用。

之后你查找你的 url,在我的例子中是:localhost:8000/oauth/token并使用 postman 对其进行发布。

我被困在不能在请求正文中使用 JSON 的部分,而是 oauth 请求需要在 1 个名为“body”的长参数中作为字符串。这就是 httprequest 的工作方式。

//authorization grant type: Resource owner password-based.
const HOST_ADRESS = "192.168.104.137:8000"; //change with your own host
const client_id = "jpijpijpijpijipjipijipijipijipj";
fetch('http://'+HOST_ADRESS+"/oauth/token/", {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Cache-Control': 'no-cache'
},
body: "client_id=sfjwepifjpfweijgpeijSGIOEJOPGIWSJA35340537530708&grant_type=password&username="+username+"&password="+password
})
.then((response) => response.text())
.then((responseText) => {
console.log(responseText);
//redux succed do something.
//dispatch(actionsCreators.succesLogin(responseText));
})
.catch((error) => {
const data = {error: "A error happened"};
//redux error.
//dispatch(actionsCreators.errorLogin(data));
console.warn(error);
});

希望其他人从我采取的步骤中学到一些东西。只需要将 token 保存在数据库中的某个位置以检查(sql lite)或 realm.io(接下来的步骤。)

关于android - react native android oauth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37302280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com