swb*_*dit 7 authentication federated-identity amazon-web-services amazon-cognito
我希望我的应用程序允许用户使用Facebook,Google,Amazon ...等帐户才能登录我的应用程序.这可以通过AWS Cognito正常工作.
但是,如果用户没有任何登录,应用程序是否可以通过编程方式创建用户登录?
用户将提供id和密码,app将该信息发送给认证提供者以创建新的登录/帐户.
我不需要实现自己的身份验证机制,并担心如何存储密码等.
根据我的研究,我认为现有的身份验证提供程序甚至OpenID等其他服务都无法做到这一点.
如果我不想实现自己的登录存储和身份验证,您还有其他选择吗?它不一定需要与AWS Cognito集成.
你的问题让我有些困惑。如果您要问:
我可以通过编程方式在Facebook / Google上创建新的用户名和密码吗?
那么答案是否定的。您必须在其网站上注册Facebook / Google。如果您要问:
我可以使用仅在Cognito中存在的用户名和密码创建新用户吗?
那么答案是肯定的。为此,取决于您是在浏览器中还是在服务器上创建用户。在浏览器中,使用Cognito Javascript API。在服务器上,使用Cognito Admin Server API。
这是一些在Node JS中的服务器上创建新用户的示例代码(用您自己的令牌替换我的字符串,尤其是其中带有@符号的字符串):
let params = {
UserPoolId: "@cognito_pool_id@",
Username: "jhancock",
DesiredDeliveryMediums: ["EMAIL"],
ForceAliasCreation: false,
MessageAction: "SUPPRESS",
TemporaryPassword: "somePassword",
UserAttributes: [
{ Name: "given_name", Value: "John"},
{ Name: "family_name", Value: "Hancock"},
{ Name: "name", Value: "John Hancock"},
{ Name: "email", Value: "john@gmail.com"},
{ Name: "phone_number", Value: "+15125551212"}
],
};
console.log("Sending params to cognito: " + JSON.stringify(params));
let cognitoIdentityServiceProvider = new AWS.CognitoIdentityServiceProvider({region: "us-east-1"});
cognitoIdentityServiceProvider.adminCreateUser(params, function(error, data) {
if (error) {
console.log("Error adding user to cognito: " + JSON.stringify(error), error.stack);
} else {
console.log("Received back from cognito: " + JSON.stringify(data));
}
}
Run Code Online (Sandbox Code Playgroud)
当您开始使用该密码时,您可能想看一下有关如何将临时密码更改为真实密码的文章。
从我之前实施社交媒体身份验证的经验来看,您好。我的结论是,它很难实现。如果你不知道在 iOS 中显示 Web 视图来验证用户身份,你需要使用 iOSACAccountStore类来实现这一点,但即使这样也只能提供登录的机会而不是登录。
| 归档时间: |
|
| 查看次数: |
2512 次 |
| 最近记录: |