{"id":22747,"date":"2025-11-08T01:25:00","date_gmt":"2025-11-08T01:25:00","guid":{"rendered":"https:\/\/pokecon.jp\/job\/?p=22747"},"modified":"2025-11-08T01:25:00","modified_gmt":"2025-11-08T01:25:00","slug":"en-leveraging-user-frustration-for-increased-security-how-we-drove-passkey-adoption-after-password-reset-jp-%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%81%ae%e4%b8%8d%e6%ba%80%e3%82%92%e6%a9%9f","status":"publish","type":"post","link":"https:\/\/pokecon.jp\/job\/22747\/","title":{"rendered":"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7"},"content":{"rendered":"\n<\/p>\n<div>\n<p><a target=\"_blank\" href=\"#japanese-version\">\u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u306f\u5f8c\u534a\u3067\u3059\u3002<\/a><\/p>\n<p>Hello! I\u2019m Teysir, a Frontend Engineer in the Apps unit here at Nulab. I recently had the privilege of leading a project focused on modernizing and improving our password recovery functionality. This initiative was crucial for delivering a more secure and streamlined experience for our users.<\/p>\n<p>The friction of a forgotten password is a universal pain point in the user journey. Our recent project was designed not only to modernize this frustrating flow but also to use this moment of account recovery as a strategic opportunity to drive user security through passkey adoption.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"English_version\"\/>English version<span class=\"ez-toc-section-end\"\/><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Modernizing_Account_Recovery\"\/>Modernizing Account Recovery<span class=\"ez-toc-section-end\"\/><\/h3>\n<p>We in the project team first set out to refactor and modernize our entire password reset experience. The core objective of the project was twofold: for end users who forgot their password, we needed a newly designed solution that delivers streamlined and secure experience and promotes passwordless access.<\/p>\n<p>Technically, the project involved refactoring the existing implementation and migrating to the latest React and Next.js, and modernizing the password reset page\u2019s functionality and design. As a result, we achieved a modern and highly maintainable password recovery function that ensures consistent UI\/UX across all authentication features.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Promoting_Passkeys_at_the_Optimal_Moment\"\/>Promoting Passkeys at the Optimal Moment<span class=\"ez-toc-section-end\"\/><\/h3>\n<p>While refactoring the front end was one challenge, the even bigger question was deciding the optimal point in the flow to introduce passkey creation.<br \/>We in the project team considered three main approaches:<\/p>\n<ol>\n<li>Option A (Replace Password Reset): Allowing users to create a passkey instead of setting a new password. This was rejected due to concerns about creating UX inconsistency, as other flows require knowing the current password.<\/li>\n<li>Option B (Passive promotion): Executing the standard password reset and only promoting the benefits of passkeys on the view, without allowing direct creation. We were concerned this would have limited effectiveness in driving specific registration action.<\/li>\n<li>Option C (Strategic enrollment): First, complete the mandatory password reset, and then immediately add an optional screen where the user can create a passkey.<\/li>\n<\/ol>\n<h4><span class=\"ez-toc-section\" id=\"FIDO_Alliance_Design_Guideline\"\/>FIDO Alliance Design Guideline<span class=\"ez-toc-section-end\"\/><\/h4>\n<p>We ultimately adopted Option C, based on the FIDO Alliance design guideline \u201c<a target=\"_blank\" href=\"https:\/\/www.passkeycentral.org\/design-guidelines\/optional-patterns\/create-passkey-after-account-recovery-due-to-forgotten-password\" target=\"_blank\" rel=\"noopener\">Create Passkey After Account Recovery Due To Forgotten Password<\/a>\u201d.<\/p>\n<p>According to the UX knowledge shared in the guidelines, when users are in the midst of account management and experiencing the friction of a password reset, proposing passkey creation feels like a relevant feature that enhances the task, rather than an unnecessary interruption.<\/p>\n<p>Through this flow, the project team secured the following points:<\/p>\n<p class=\"aligncenter figure\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-49597\" src=\"https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow.png\" alt=\"Password recovery flow with passkey promotion\" width=\"1422\" height=\"1455\" srcset=\"https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow.png 1422w, https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow-293x300.png 293w, https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow-1001x1024.png 1001w, https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow-768x786.png 768w\" sizes=\"auto, (max-width: 1422px) 100vw, 1422px\"\/><span class=\"caption-text\">Password recovery flow<\/span><\/p>\n<ul>\n<li>Maintaining Consistency (as password reset is always performed).<\/li>\n<li>Respecting User Choice (respecting the preference of existing users who might temporarily want to retain their password).<\/li>\n<li>Security Improvement (passkey creation is naturally encouraged, expected to lead to improved account security).<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"Results_Clear_improvement_in_security_adoption\"\/>Results: Clear improvement in security adoption.<span class=\"ez-toc-section-end\"\/><\/h4>\n<p>The true success of this project is evident in the rapid passkey adoption rate following the production release in August 2025.<\/p>\n<p>As a result of strategically introducing the passkey promotion at the optimal moment in the account recovery process, the effect clearly appeared.<\/p>\n<p>Based on the recent data, approximately 7% of users who completed the password reset created a passkey immediately afterward.<\/p>\n<p>Improvement in daily registration rate: A comparison of the daily increase rate of passkey registrants before and after the password reset improvement release clearly shows the effect of this promotional placement:<\/p>\n<ul>\n<li>Pre-release Daily Registration Rate: Approximately 32.5 users\/day.<\/li>\n<li>Post-release Daily Registration Rate: Approximately 55.0 users\/day.<\/li>\n<\/ul>\n<p>This data confirms that by introducing the optional passkey creation promotion immediately after the mandatory password reset resulted in a clear and measurable positive impact on user security adoption.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Summary\"\/>Summary<span class=\"ez-toc-section-end\"\/><\/h3>\n<p>Our project team\u2019s modernization effort did more than just provide a new UI\/UX. By intentionally utilizing the high-friction user experience (forgotten password) as an opportunity for a high-value security upgrade, we successfully guided many users towards safer passwordless authentication. Passkeys are safer and simpler than conventional passwords.<\/p>\n<p>We are proud to have delivered this solution and we will continue to strive to expand the possibilities of account management and user experience.<\/p>\n<p>\u2014<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88\"\/><a target=\"_blank\" id=\"japanese-version\"\/>\u65e5\u672c\u8a9e\u7248<span class=\"ez-toc-section-end\"\/><\/h2>\n<p>\u3053\u3093\u306b\u3061\u306f\uff01Nulab\u306eApps\u30e6\u30cb\u30c3\u30c8\u3067\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u30a8\u30f3\u30b8\u30cb\u30a2\u3092\u3057\u3066\u3044\u308b\u30c6\u30a4\u30b7\u30fc\u3067\u3059\u3002\u79c1\u306f2025\u5e748\u6708\u306b\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u305f\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u6a5f\u80fd\u306e\u5237\u65b0\u30fb\u6539\u5584\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30ea\u30fc\u30c9\u3057\u307e\u3057\u305f\u3002\u3053\u306e\u53d6\u308a\u7d44\u307f\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u7686\u69d8\u306b\u3088\u308a\u5b89\u5168\u3067\u30b9\u30e0\u30fc\u30ba\u306a\u8a8d\u8a3c\u4f53\u9a13\u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u306b\u6975\u3081\u3066\u91cd\u8981\u3067\u3057\u305f\u3002<\/p>\n<p>\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5fd8\u308c\u3066\u3057\u307e\u3063\u305f\u6642\u306e\u300c\u9762\u5012\u304f\u3055\u3044\u300d\u3068\u3044\u3046\u7d4c\u9a13\u306f\u3001\u8ab0\u306b\u3067\u3082\u3042\u308b\u5171\u901a\u306e\u30b9\u30c8\u30ec\u30b9\u30dd\u30a4\u30f3\u30c8\u3067\u3059\u3088\u306d\u3002\u79c1\u305f\u3061\u306f\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3001\u30b9\u30c8\u30ec\u30b9\u30d5\u30eb\u306a\u30a2\u30ab\u30a6\u30f3\u30c8\u56de\u5fa9\u30d5\u30ed\u30fc\u306e\u30e2\u30c0\u30f3\u5316\u3060\u3051\u3067\u306a\u304f\u3001\u3053\u306e\u6a5f\u4f1a\u3092\u6226\u7565\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5411\u4e0a\u306e\u30c1\u30e3\u30f3\u30b9\u3068\u6349\u3048\u3001\u30d1\u30b9\u30ad\u30fc\u306e\u5c0e\u5165\u4fc3\u9032\u306b\u6ce8\u76ee\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u7d50\u679c\u3068\u3057\u3066\u3001\u30d1\u30b9\u30ad\u30fc\u767b\u9332\u7387\u304c\u5287\u7684\u306b\u5411\u4e0a\u3059\u308b\u3068\u3044\u3046\u6e2c\u5b9a\u53ef\u80fd\u306a\u6210\u679c\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\u3002\u672c\u8a18\u4e8b\u3067\u306f\u3001\u3053\u306e\u6210\u529f\u304c\u3069\u306e\u3088\u3046\u306b\u3057\u3066\u5b9f\u73fe\u3057\u305f\u306e\u304b\u3001\u6226\u7565\u7684\u306a\u30bf\u30a4\u30df\u30f3\u30b0\u3068\u30e6\u30fc\u30b6\u30fc\u4e2d\u5fc3\u306e\u8a2d\u8a08\u304c\u3044\u304b\u306b\u91cd\u8981\u3067\u3042\u3063\u305f\u304b\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E5%9B%9E%E5%BE%A9%E3%81%AE%E3%83%A2%E3%83%80%E3%83%B3%E5%8C%96\"\/>\u30a2\u30ab\u30a6\u30f3\u30c8\u56de\u5fa9\u306e\u30e2\u30c0\u30f3\u5316<span class=\"ez-toc-section-end\"\/><\/h3>\n<p>\u79c1\u305f\u3061\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c1\u30fc\u30e0\u304c\u6700\u521d\u306b\u53d6\u308a\u7d44\u3093\u3060\u306e\u306f\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u4f53\u9a13\u5168\u4f53\u306e\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3068\u30e2\u30c0\u30f3\u5316\u3067\u3059\u3002\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e3b\u8981\u306a\u76ee\u7684\u306f\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5fd8\u308c\u305f\u30a8\u30f3\u30c9\u30e6\u30fc\u30b6\u30fc\u306b\u5bfe\u3057\u3066\u3001\u52b9\u7387\u7684\u3067\u5b89\u5168\u306a\u4f53\u9a13\u3092\u63d0\u4f9b\u3057\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u30ec\u30b9\u30a2\u30af\u30bb\u30b9\u3092\u4fc3\u9032\u3059\u308b\u3001\u65b0\u305f\u306b\u8a2d\u8a08\u3055\u308c\u305f\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3067\u3057\u305f\u3002<\/p>\n<p>\u6280\u8853\u7684\u306b\u306f\u3001\u65e2\u5b58\u306e\u5b9f\u88c5\u3092\u6700\u65b0\u306eReact\u3068Next.js\u306b\u5bfe\u5fdc\u3059\u308b\u3088\u3046\u306b\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3057\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u30da\u30fc\u30b8\u306e\u6a5f\u80fd\u3068\u30c7\u30b6\u30a4\u30f3\u3092\u73fe\u4ee3\u7684\u306b\u5237\u65b0\u3057\u307e\u3057\u305f\u3002\u305d\u306e\u7d50\u679c\u3001\u8a8d\u8a3c\u6a5f\u80fd\u5168\u4f53\u3067\u4e00\u8cab\u3057\u305fUI\/UX\u3092\u4fdd\u8a3c\u3059\u308b\u3001\u30e2\u30c0\u30f3\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\u56de\u5fa9\u6a5f\u80fd\u3092\u5b9f\u73fe\u3057\u307e\u3057\u305f\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E3%83%91%E3%82%B9%E3%82%AD%E3%83%BC%E3%82%92%E3%83%97%E3%83%AD%E3%83%A2%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%99%E3%82%8B%E6%9C%80%E9%81%A9%E3%81%AA%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0\"\/>\u30d1\u30b9\u30ad\u30fc\u3092\u30d7\u30ed\u30e2\u30fc\u30b7\u30e7\u30f3\u3059\u308b\u6700\u9069\u306a\u30bf\u30a4\u30df\u30f3\u30b0<span class=\"ez-toc-section-end\"\/><\/h3>\n<p>\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u306e\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\u3082\u3055\u308b\u3053\u3068\u306a\u304c\u3089\u3001\u30d5\u30ed\u30fc\u306e\u3069\u306e\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u30d1\u30b9\u30ad\u30fc\u4f5c\u6210\u3092\u4fc3\u3059\u304b\u3068\u3044\u3046\u70b9\u304c\u3001ADR\uff08\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u8a2d\u8a08\u66f8\uff09\u306b\u3082\u8a18\u9332\u3055\u308c\u305f\u6700\u3082\u91cd\u8981\u306a\u6226\u7565\u7684\u6c7a\u5b9a\u3068\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u79c1\u305f\u3061\u306f\u4ee5\u4e0b\u306e3\u3064\u306e\u4e3b\u8981\u306a\u30a2\u30d7\u30ed\u30fc\u30c1\u3092\u691c\u8a0e\u3057\u307e\u3057\u305f\u3002<\/p>\n<ol>\n<li>Option A\uff08\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u306e\u4ee3\u66ff\uff09\uff1a\u65b0\u3057\u3044\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u8a2d\u5b9a\u3059\u308b\u4ee3\u308f\u308a\u306b\u3001\u30d1\u30b9\u30ad\u30fc\u306e\u4f5c\u6210\u3092\u8a31\u53ef\u3059\u308b\u3002\u3053\u308c\u306f\u3001\u4ed6\u306e\u30d5\u30ed\u30fc\u3067\u73fe\u5728\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u5fc5\u8981\u306b\u306a\u308b\u305f\u3081\u3001UX\u306e\u4e00\u8cab\u6027\u3092\u6b20\u304f\u61f8\u5ff5\u304c\u3042\u308a\u307e\u3057\u305f\u3002<\/li>\n<li>Option B\uff08\u53d7\u52d5\u7684\u306a\u30d7\u30ed\u30e2\u30fc\u30b7\u30e7\u30f3\uff09\uff1a \u901a\u5e38\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u3092\u5b9f\u884c\u3057\u3001\u753b\u9762\u4e0a\u3067\u30d1\u30b9\u30ad\u30fc\u306e\u30e1\u30ea\u30c3\u30c8\u3092\u5ba3\u4f1d\u3059\u308b\u3060\u3051\u306b\u7559\u3081\u3001\u76f4\u63a5\u7684\u306a\u4f5c\u6210\u3092\u8a31\u53ef\u3057\u306a\u3044\u3002\u3053\u308c\u3067\u306f\u3001\u5177\u4f53\u7684\u306a\u767b\u9332\u884c\u52d5\u3092\u4fc3\u3059\u52b9\u679c\u304c\u9650\u5b9a\u7684\u306b\u306a\u308b\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u61f8\u5ff5\u3057\u307e\u3057\u305f\u3002<\/li>\n<li>Option C\uff08\u6226\u7565\u7684\u306a\u5c0e\u5165\uff09\uff1a \u307e\u305a\u5fc5\u9808\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u3092\u5b8c\u4e86\u3055\u305b\u3001\u305d\u306e\u76f4\u5f8c\u306b\u3001\u30aa\u30d7\u30b7\u30e7\u30f3\u3068\u3057\u3066\u30d1\u30b9\u30ad\u30fc\u3092\u4f5c\u6210\u3067\u304d\u308b\u753b\u9762\u3092\u8ffd\u52a0\u3059\u308b\u3002<\/li>\n<\/ol>\n<h4><span class=\"ez-toc-section\" id=\"FIDO%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3\"\/>FIDO\u30a2\u30e9\u30a4\u30a2\u30f3\u30b9\u306e\u30c7\u30b6\u30a4\u30f3\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3<span class=\"ez-toc-section-end\"\/><\/h4>\n<p>\u6700\u7d42\u7684\u306b\u3001\u79c1\u305f\u3061\u306fFIDO\u30a2\u30e9\u30a4\u30a2\u30f3\u30b9\u306e\u30c7\u30b6\u30a4\u30f3\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u306b\u660e\u8a18\u3055\u308c\u3066\u3044\u308b\u300c<a target=\"_blank\" href=\"https:\/\/www.passkeycentral.org\/ja\/design-guidelines\/optional-patterns\/create-passkey-after-account-recovery-due-to-forgotten-password\" target=\"_blank\" rel=\"noopener\">\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5fd8\u308c\u305f\u3053\u3068\u306b\u3088\u308b\u30a2\u30ab\u30a6\u30f3\u30c8\u56de\u5fa9\u5f8c\u306b\u30d1\u30b9\u30ad\u30fc\u3092\u4f5c\u6210\u3059\u308b<\/a>\u300d\u3068\u3044\u3046\u63a8\u5968\u4e8b\u9805\u306b\u57fa\u3065\u304d\u3001Option C (\u6226\u7565\u7684\u5c0e\u5165)\u3092\u63a1\u7528\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3\u3067\u793a\u3055\u308c\u3066\u3044\u308bUX\u77e5\u898b\u306b\u3088\u308b\u3068\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u30a2\u30ab\u30a6\u30f3\u30c8\u7ba1\u7406\u306e\u771f\u3063\u305f\u3060\u4e2d\u3067\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u3068\u3044\u3046\u6469\u64e6\u3092\u7d4c\u9a13\u3057\u3066\u3044\u308b\u6642\u306b\u30d1\u30b9\u30ad\u30fc\u306e\u4f5c\u6210\u3092\u63d0\u6848\u3059\u308b\u3068\u3001\u4e0d\u5fc5\u8981\u306a\u4e2d\u65ad\u3067\u306f\u306a\u304f\u3001\u30bf\u30b9\u30af\u3092\u5f37\u5316\u3059\u308b\u95a2\u9023\u6027\u306e\u9ad8\u3044\u6a5f\u80fd\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u308b\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u306e\u30d5\u30ed\u30fc\u306b\u3088\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c1\u30fc\u30e0\u306f\u6b21\u306e\u70b9\u3092\u78ba\u4fdd\u3057\u307e\u3057\u305f\u3002<\/p>\n<p class=\"aligncenter figure\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-49597 size-full\" src=\"https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow.png\" alt=\"Password recovery flow with passkey promotion\" width=\"1422\" height=\"1455\" srcset=\"https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow.png 1422w, https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow-293x300.png 293w, https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow-1001x1024.png 1001w, https:\/\/d1u2e6wtudxkpm.cloudfront.net\/wp-content\/uploads\/sites\/2\/2025\/11\/recovery-flow-768x786.png 768w\" sizes=\"auto, (max-width: 1422px) 100vw, 1422px\"\/><span class=\"caption-text\">\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u30d5\u30ed\u30fc<\/span><\/p>\n<ul>\n<li>\u4e00\u8cab\u6027\u306e\u7dad\u6301\uff1a \u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u304c\u5e38\u306b\u5b9f\u884c\u3055\u308c\u308b\u305f\u3081\u3001\u73fe\u5728\u306e\u30b7\u30b9\u30c6\u30e0\u4ed5\u69d8\u3068\u306e\u4e00\u8cab\u6027\u304c\u4fdd\u305f\u308c\u307e\u3059\u3002<\/li>\n<li>\u30e6\u30fc\u30b6\u30fc\u9078\u629e\u306e\u5c0a\u91cd\uff1a \u65e2\u5b58\u30e6\u30fc\u30b6\u30fc\u304c\u4e00\u6642\u7684\u306b\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u4fdd\u6301\u3057\u305f\u3044\u3068\u3044\u3046\u55dc\u597d\u3092\u5c0a\u91cd\u3057\u307e\u3059\u3002<\/li>\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5411\u4e0a\uff1a \u30d1\u30b9\u30ad\u30fc\u4f5c\u6210\u304c\u81ea\u7136\u3068\u4fc3\u3055\u308c\u3001\u30a2\u30ab\u30a6\u30f3\u30c8\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u5411\u4e0a\u306b\u3064\u306a\u304c\u308b\u3053\u3068\u304c\u671f\u5f85\u3055\u308c\u307e\u3057\u305f\u3002<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%E7%B5%90%E6%9E%9C%EF%BC%9A%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%B0%8E%E5%85%A5%E7%8E%87%E3%81%AE%E6%98%8E%E7%A2%BA%E3%81%AA%E5%90%91%E4%B8%8A\"\/>\u7d50\u679c\uff1a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5c0e\u5165\u7387\u306e\u660e\u78ba\u306a\u5411\u4e0a<span class=\"ez-toc-section-end\"\/><\/h4>\n<p>\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u771f\u306e\u6210\u529f\u306f\u30012025\u5e748\u6708\u4e2d\u306e\u672c\u756a\u30ea\u30ea\u30fc\u30b9\u5f8c\u306e\u3001\u30e6\u30fc\u30b6\u30fc\u306b\u3088\u308b\u30d1\u30b9\u30ad\u30fc\u306e\u6025\u901f\u306a\u63a1\u7528\u7387\u306b\u8868\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30a2\u30ab\u30a6\u30f3\u30c8\u56de\u5fa9\u30d7\u30ed\u30bb\u30b9\u306e\u6700\u9069\u306a\u77ac\u9593\u306b\u30d1\u30b9\u30ad\u30fc\u306e\u30d7\u30ed\u30e2\u30fc\u30b7\u30e7\u30f3\u3092\u6226\u7565\u7684\u306b\u5c0e\u5165\u3057\u305f\u7d50\u679c\u3001\u305d\u306e\u52b9\u679c\u304c\u660e\u78ba\u306b\u73fe\u308c\u307e\u3057\u305f\u3002<\/p>\n<p>\u76f4\u8fd1\u306e\u30c7\u30fc\u30bf\u306b\u57fa\u3065\u304f\u3068\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u3092\u5b8c\u4e86\u3057\u305f\u30e6\u30fc\u30b6\u30fc\u306e\u3046\u3061\u3001\u7d047%\u304c\u305d\u306e\u76f4\u5f8c\u306b\u30d1\u30b9\u30ad\u30fc\u3092\u767b\u9332\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30c7\u30a4\u30ea\u30fc\u767b\u9332\u7387\u306e\u6539\u5584\uff1a \u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u306e\u6539\u5584\u30ea\u30ea\u30fc\u30b9\u524d\u5f8c\u3067\u306e\u30d1\u30b9\u30ad\u30fc\u767b\u9332\u8005\u306e1\u65e5\u3042\u305f\u308a\u306e\u5897\u52a0\u7387\u3092\u6bd4\u8f03\u3059\u308b\u3068\u3001\u3053\u306e\u30d7\u30ed\u30e2\u30fc\u30b7\u30e7\u30f3\u914d\u7f6e\u306e\u52b9\u679c\u304c\u660e\u78ba\u306b\u308f\u304b\u308a\u307e\u3059\u3002<\/p>\n<ul>\n<li>\u30ea\u30ea\u30fc\u30b9\u524d\u306e\u30c7\u30a4\u30ea\u30fc\u767b\u9332\u7387\uff1a \u7d04 32.5\u4eba\/\u65e5\u3002<\/li>\n<li>\u30ea\u30ea\u30fc\u30b9\u5f8c\u306e\u30c7\u30a4\u30ea\u30fc\u767b\u9332\u7387\uff1a \u7d04 55.0\u4eba\/\u65e5\u3002<\/li>\n<\/ul>\n<p>\u3053\u306e\u30c7\u30fc\u30bf\u306f\u3001\u5fc5\u9808\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306b\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u30d1\u30b9\u30ad\u30fc\u4f5c\u6210\u753b\u9762\u3092\u6226\u7565\u7684\u306b\u5c0e\u5165\u3057\u305f\u3053\u3068\u304c\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u63a1\u7528\u306b\u660e\u78ba\u3067\u6e2c\u5b9a\u53ef\u80fd\u306a\u30d7\u30e9\u30b9\u306e\u5f71\u97ff\u3092\u3082\u305f\u3089\u3057\u305f\u3053\u3068\u3092\u88cf\u4ed8\u3051\u3066\u3044\u307e\u3059\u3002<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E3%81%BE%E3%81%A8%E3%82%81\"\/>\u307e\u3068\u3081<span class=\"ez-toc-section-end\"\/><\/h3>\n<p>\u79c1\u305f\u3061\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c1\u30fc\u30e0\u306e\u30e2\u30c0\u30f3\u5316\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306f\u3001\u5358\u306b\u65b0\u3057\u3044UI\/UX\u3092\u63d0\u4f9b\u3059\u308b\u3060\u3051\u306b\u3068\u3069\u307e\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6469\u64e6\u70b9\u306e\u9ad8\u3044\u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\uff08\u30d1\u30b9\u30ef\u30fc\u30c9\u5fd8\u308c\uff09\u3092\u3001\u9ad8\u4fa1\u5024\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30a2\u30c3\u30d7\u30b0\u30ec\u30fc\u30c9\u306e\u6a5f\u4f1a\u3068\u3057\u3066\u610f\u56f3\u7684\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u5b89\u5168\u306a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ec\u30b9\u8a8d\u8a3c\u3078\u3068\u591a\u304f\u306e\u30e6\u30fc\u30b6\u30fc\u3092\u5c0e\u304f\u3053\u3068\u306b\u6210\u529f\u3057\u307e\u3057\u305f\u3002\u30d1\u30b9\u30ad\u30fc\u306f\u5f93\u6765\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3088\u308a\u3082\u5b89\u5168\u3067\u30b7\u30f3\u30d7\u30eb\u3067\u3059\u3002<\/p>\n<p>\u3053\u306e\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3067\u304d\u305f\u3053\u3068\u3092\u8a87\u308a\u306b\u601d\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u304b\u3089\u3082\u3001\u30a2\u30ab\u30a6\u30f3\u30c8\u7ba1\u7406\u3068\u30e6\u30fc\u30b6\u30fc\u4f53\u9a13\u306e\u53ef\u80fd\u6027\u3092\u62bc\u3057\u5e83\u3052\u3066\u3044\u304f\u3053\u3068\u306b\u5c3d\u529b\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n<\/p><\/div>\n\n<br \/><a href=\"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/\">\u5143\u306e\u8a18\u4e8b\u3092\u78ba\u8a8d\u3059\u308b <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u306f\u5f8c\u534a\u3067\u3059\u3002 Hello! I\u2019m Teysir, a Frontend Engineer in the Apps unit here at Nulab. I recently had the privile [&hellip;]","protected":false},"author":1,"featured_media":22748,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-22747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-company-tec"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7 - \u30dd\u30b1\u30b3\u30f3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7 - \u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"og:description\" content=\"\u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u306f\u5f8c\u534a\u3067\u3059\u3002 Hello! I\u2019m Teysir, a Frontend Engineer in the Apps unit here at Nulab. I recently had the privile [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/\" \/>\n<meta property=\"og:site_name\" content=\"\u30dd\u30b1\u30b3\u30f3\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-08T01:25:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/passkey_adoption_techblog_thumbnail.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"670\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"info@pokecon.jp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"info@pokecon.jp\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/22747\\\/\"},\"author\":{\"name\":\"info@pokecon.jp\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"headline\":\"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7\",\"datePublished\":\"2025-11-08T01:25:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/22747\\\/\"},\"wordCount\":704,\"image\":{\"@id\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/passkey_adoption_techblog_thumbnail.png\",\"articleSection\":[\"\u4f01\u696d\u30c6\u30c3\u30af\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/22747\\\/\",\"url\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/\",\"name\":\"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7 - \u30dd\u30b1\u30b3\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/passkey_adoption_techblog_thumbnail.png\",\"datePublished\":\"2025-11-08T01:25:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/#primaryimage\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/passkey_adoption_techblog_thumbnail.png\",\"contentUrl\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/wp-content\\\/uploads\\\/2025\\\/11\\\/passkey_adoption_techblog_thumbnail.png\",\"width\":1280,\"height\":670},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nulab.com\\\/ja\\\/blog\\\/nulab\\\/passkey-adoption-after-password-reset-bilingual\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u30db\u30fc\u30e0\",\"item\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#website\",\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/\",\"name\":\"\u30dd\u30b1\u30b3\u30f3\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/#\\\/schema\\\/person\\\/16c9f07b1ba984d165d9aee259bda997\",\"name\":\"info@pokecon.jp\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g\",\"caption\":\"info@pokecon.jp\"},\"url\":\"https:\\\/\\\/pokecon.jp\\\/job\\\/author\\\/infopokecon-jp\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7 - \u30dd\u30b1\u30b3\u30f3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/","og_locale":"ja_JP","og_type":"article","og_title":"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7 - \u30dd\u30b1\u30b3\u30f3","og_description":"\u65e5\u672c\u8a9e\u306e\u6587\u7ae0\u306f\u5f8c\u534a\u3067\u3059\u3002 Hello! I\u2019m Teysir, a Frontend Engineer in the Apps unit here at Nulab. I recently had the privile [&hellip;]","og_url":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/","og_site_name":"\u30dd\u30b1\u30b3\u30f3","article_published_time":"2025-11-08T01:25:00+00:00","og_image":[{"width":1280,"height":670,"url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/passkey_adoption_techblog_thumbnail.png","type":"image\/png"}],"author":"info@pokecon.jp","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"info@pokecon.jp","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"3\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/#article","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/22747\/"},"author":{"name":"info@pokecon.jp","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"headline":"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7","datePublished":"2025-11-08T01:25:00+00:00","mainEntityOfPage":{"@id":"https:\/\/pokecon.jp\/job\/22747\/"},"wordCount":704,"image":{"@id":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/passkey_adoption_techblog_thumbnail.png","articleSection":["\u4f01\u696d\u30c6\u30c3\u30af"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/pokecon.jp\/job\/22747\/","url":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/","name":"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7 - \u30dd\u30b1\u30b3\u30f3","isPartOf":{"@id":"https:\/\/pokecon.jp\/job\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/#primaryimage"},"image":{"@id":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/#primaryimage"},"thumbnailUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/passkey_adoption_techblog_thumbnail.png","datePublished":"2025-11-08T01:25:00+00:00","author":{"@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997"},"breadcrumb":{"@id":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/#primaryimage","url":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/passkey_adoption_techblog_thumbnail.png","contentUrl":"https:\/\/pokecon.jp\/job\/wp-content\/uploads\/2025\/11\/passkey_adoption_techblog_thumbnail.png","width":1280,"height":670},{"@type":"BreadcrumbList","@id":"https:\/\/nulab.com\/ja\/blog\/nulab\/passkey-adoption-after-password-reset-bilingual\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u30db\u30fc\u30e0","item":"https:\/\/pokecon.jp\/job\/"},{"@type":"ListItem","position":2,"name":"[EN] Leveraging User Frustration for Increased Security: How We Drove Passkey Adoption After Password Reset | [JP] \u30e6\u30fc\u30b6\u30fc\u306e\u4e0d\u6e80\u3092\u6a5f\u4f1a\u306b\u5909\u3048\u308b\uff1a\u30d1\u30b9\u30ef\u30fc\u30c9\u30ea\u30bb\u30c3\u30c8\u76f4\u5f8c\u306e\u30d1\u30b9\u30ad\u30fc\u5c0e\u5165\u3067\u63a1\u7528\u7387\u304c\u5927\u5e45\u30a2\u30c3\u30d7"}]},{"@type":"WebSite","@id":"https:\/\/pokecon.jp\/job\/#website","url":"https:\/\/pokecon.jp\/job\/","name":"\u30dd\u30b1\u30b3\u30f3","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pokecon.jp\/job\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/pokecon.jp\/job\/#\/schema\/person\/16c9f07b1ba984d165d9aee259bda997","name":"info@pokecon.jp","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2b0549cd9f7907c092ca5fbb283baf72337f235726e4b46fa39ec0b701ac2fe2?s=96&d=wavatar&r=g","caption":"info@pokecon.jp"},"url":"https:\/\/pokecon.jp\/job\/author\/infopokecon-jp\/"}]}},"_links":{"self":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/22747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/comments?post=22747"}],"version-history":[{"count":1,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/22747\/revisions"}],"predecessor-version":[{"id":22749,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/posts\/22747\/revisions\/22749"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media\/22748"}],"wp:attachment":[{"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/media?parent=22747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/categories?post=22747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pokecon.jp\/job\/wp-json\/wp\/v2\/tags?post=22747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}